パナソニックグループ プログラミングコンテスト2023(AtCoder Beginner Contest 326)
問題文
省略
省略
C++に変換後のコードはこちら
int N; char R[7], C[7];
char res[5][7]; int ap[5];
int solve(int n, int d, int mask){
if(n == N) return 1;
if(d == 3){
rep(j,N) if(res[n][j] != '.') break;
if(res[n][j] != R[n]) return 0;
return solve(n+1, 0, mask);
}
rep(i,N) if(res[n][i]=='.'){
if(!BIT_ith(mask,i) && C[i] != 'A'+d) continue;
if(BIT_ith(ap[i],d)) continue;
res[n][i] = 'A' + d;
ap[i] ^= 1<<d;
if(solve(n,d+1,mask|(1<<i))) return 1;
res[n][i] = '.';
ap[i] ^= 1<<d;
}
return 0;
}
{
rd(N,R,C);
rep(i,N) rep(j,N) res[i][j] = '.';
if(solve(0,0,0)){
wtLn("Yes",res(N));
} else {
wt("No");
}
}
Current time: 2024年05月05日22時35分16秒
Last modified: 2023年10月28日23時22分27秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC326 ABC_D
トップページに戻る
Logged in as: unknown user (not login)