Submission #1216542

#TimeUsernameProblemLanguageResultExecution timeMemory
1216542arielcruz2Combo (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h" #include "bits/stdc++.h" using namespace std; string guess_sequence(int N){ string inicial; vector<string> extra; if(press("AB")>0){ if(press("A")==1){ inicial="A"; }else{ inicial="B"; } }else{ if(press("X")==1){ inicial="X"; }else{ inicial="Y"; } } //cout<<inicial<<"\n"; if(N==1) return inicial; //cout<<inicial<<"\n"; if(inicial=="A"){ extra={"B","XB","XX","XY"}; }else if(inicial=="B"){ extra={"A","XA","XX","XY"}; }else if(inicial=="X"){ extra={"A","BA","BB","BY"}; }else if(inicial=="Y"){ extra={"A","BA","BB","BX"}; } for(int i=1;i<N-1;i++){ if(inicial[0]=='A'){ int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]); if(llamada==i) { inicial+='Y'; }else if(llamada==i+1) { inicial+='B'; }else if(llamada==i+2) { inicial+='X'; } //cout<<inicial<<"\n"; }else if(inicial[0]=='B'){ int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]); if(llamada==i) { inicial+='Y'; }else if(llamada==i+1) { inicial+='A'; }else if(llamada==i+2) { inicial+='X'; } //cout<<inicial<<"\n"; }else if(inicial[0]=='X'){ int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]); if(llamada==i) { inicial+='Y'; }else if(llamada==i+1) { inicial+='A'; }else if(llamada==i+2) { inicial+='B'; } //cout<<inicial<<"\n"; }else if(inicial[0]=='Y'){ int llamada=press(inicial+extra[0]+inicial+extra[1]+inicial+extra[2]+inicial+extra[3]); if(llamada==i) { inicial+='X'; }else if(llamada==i+1) { inicial+='A'; }else if(llamada==i+2) { inicial+='B'; } //cout<<inicial<<"\n"; } } if(press(inicial+"A"+inicial+"B")==N){ if(press(inicial+"A")==N){ inicial+='A'; }else{ inicial+='B'; } }else{ if(press(inicial+"X")==N){ inicial+='X'; }else{ inicial+='Y'; } } //cout<<inicial<<"\n"; return inicial; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...