AtCoder Regular Contest 108
問題文
省略
省略
C++に変換後のコードはこちら
int N;
char S[6];
set<string> chk[11];
{
rd(N,S(4));
if(N <= 3) wt(1), return 0;
chk[2].insert("AB");
rep(i,2,10){
for(string s : chk[i]){
string t;
rep(j,1,s.size()){
if(s[j-1]=='A' && s[j]=='A') t = s.substr(0,j) + S[0] + s.substr(j);
if(s[j-1]=='A' && s[j]=='B') t = s.substr(0,j) + S[1] + s.substr(j);
if(s[j-1]=='B' && s[j]=='A') t = s.substr(0,j) + S[2] + s.substr(j);
if(s[j-1]=='B' && s[j]=='B') t = s.substr(0,j) + S[3] + s.substr(j);
chk[i+1].insert(t);
}
}
}
if(chk[9].size() == 1) wt(1), return 0;
if(chk[9].size() == 21) wt(fib_mod(N-1)), return 0;
if(chk[9].size() == 64) wt(Modint(2)**(N-3)), return 0;
}
Current time: 2024年03月28日19時49分42秒
Last modified: 2020年11月22日17時04分34秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest ARC108 ARC_D
トップページに戻る
Logged in as: unknown user (not login)