Submission #95625

#TimeUsernameProblemLanguageResultExecution timeMemory
95625jamielim콤보 (IOI18_combo)C++14
0 / 100
1 ms256 KiB
#include <bits/stdc++.h> #include "combo.h" std::string guess_sequence(int N){ if(N==1){ if(press("A")==1)return "A"; if(press("B")==1)return "B"; if(press("X")==1)return "X"; return "Y"; } std::string test=""; std::string ans=""; if(press("A")==1){ for(int i=0;i<4*N;i++)test.push_back('A'); ans.push_back('A'); }else if(press("B")==1){ for(int i=0;i<4*N;i++)test.push_back('B'); ans.push_back('B'); }else if(press("X")==1){ for(int i=0;i<4*N;i++)test.push_back('X'); ans.push_back('X'); }else{ for(int i=0;i<4*N;i++)test.push_back('Y'); ans.push_back('Y'); } //3 for(int i=1;i<N-1;i++){ //N-2 if(ans[0]=='A'){ test[i]='B';test[i+1]='B'; test[N+i]='B';test[N+i+1]='X'; test[2*N+i]='B';test[2*N+i+1]='Y'; test[3*N+i]='X'; int k=press(test); test[i+1]='A'; test[N+i+1]='A'; test[2*N+i+1]='A'; if(k==i+2){ test[3*N+i]='B'; ans.push_back('B'); }else if(k==i+1){ test[i]='X'; test[N+i]='X'; test[2*N+i]='X'; ans.push_back('X'); }else{ test[i]='Y'; test[N+i]='Y'; test[2*N+i]='Y'; test[3*N+i]='Y'; ans.push_back('Y'); } }else if(ans[0]=='B'){ test[i]='A';test[i+1]='A'; test[N+i]='A';test[N+i+1]='X'; test[2*N+i]='A';test[2*N+i+1]='Y'; test[3*N+i]='X'; int k=press(test); test[i+1]='B'; test[N+i+1]='B'; test[2*N+i+1]='B'; if(k==i+2){ test[3*N+i]='A'; ans.push_back('A'); }else if(k==i+1){ test[i]='X'; test[N+i]='X'; test[2*N+i]='X'; ans.push_back('X'); }else{ test[i]='Y'; test[N+i]='Y'; test[2*N+i]='Y'; test[3*N+i]='Y'; ans.push_back('Y'); } }else if(ans[0]=='X'){ test[i]='A';test[i+1]='A'; test[N+i]='A';test[N+i+1]='B'; test[2*N+i]='A';test[2*N+i+1]='Y'; test[3*N+i]='B'; int k=press(test); test[i+1]='X'; test[N+i+1]='X'; test[2*N+i+1]='X'; if(k==i+2){ test[3*N+i]='A'; ans.push_back('A'); }else if(k==i+1){ test[i]='B'; test[N+i]='B'; test[2*N+i]='B'; ans.push_back('B'); }else{ test[i]='Y'; test[N+i]='Y'; test[2*N+i]='Y'; test[3*N+i]='Y'; ans.push_back('Y'); } }else{ test[i]='A';test[i+1]='A'; test[N+i]='A';test[N+i+1]='B'; test[2*N+i]='A';test[2*N+i+1]='X'; test[3*N+i]='B'; int k=press(test); test[i+1]='Y'; test[N+i+1]='Y'; test[2*N+i+1]='Y'; if(k==i+2){ test[3*N+i]='A'; ans.push_back('A'); }else if(k==i+1){ test[i]='B'; test[N+i]='B'; test[2*N+i]='B'; ans.push_back('B'); }else{ test[i]='X'; test[N+i]='X'; test[2*N+i]='X'; test[3*N+i]='X'; ans.push_back('X'); } } } //only allowed one more if(ans[0]=='A'){ ans.push_back('B'); if(press(ans)==N)return ans; ans[N-1]='X'; if(press(ans)==N)return ans; ans[N-1]='Y'; return ans; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...