パナソニックグループ プログラミングコンテスト2023(AtCoder Beginner Contest 326) D問題 - ABC Puzzle

Source

パナソニックグループ プログラミングコンテスト2023(AtCoder Beginner Contest 326)
問題文

問題概要

省略

解法

省略

cLay(version 20231016-1)のコード

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)

ログイン: