# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
870920 | _unknown_2010 | 콤보 (IOI18_combo) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
string guess_sequence(int N) {
//string p = "";
char ot[3];
string ans;
if(press("A")==1)
ans="A",ot[0]='B',ot[1]='X',ot[2]='Y';
else if(press("B")==1)
ans="B",ot[0]='A',ot[1]='X',ot[2]='Y';
else if(press("X")==1)
ans="X",ot[0]='B',ot[1]='A',ot[2]='Y';
else
ans="Y",ot[0]='B',ot[1]='X',ot[2]='A';
//int coins = press(p);
string S;
// cout<<N<<'\n';
if(N==1) return ans;
for (int i = 2; i <N; ++i) {
S = ans+ot[0]+ans+ot[1]+ot[0]+ans+ot[1]+ot[1]+ans+ot[1]+ot[2];
//cout<<S<<' ';
// cout<<S.size()<<'\n';
int p=press(S);
if(p==i-1) ans+=ot[2];
else if(p==i) ans+=ot[0];
else ans+=ot[1];
//cout<<ans<<'\n';
}
if(press(ans+ot[0])==N) ans+=ot[0];
else if( press(ans+ot[1])==N) ans+=ot[1];
else ans+=ot[2];
return ans;
}