이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
#include "combo.h"
#define FOR(i, begin, end) for(int i=(begin); i<(end); i++)
#define sz(x) ((int)(x).size())
using namespace std;
int n;
std::string guess_sequence(int N) {
n=N;
string p="";
if(press("AB")>0) {
if(press("A")>0) p+='A';
else p+='B';
}
else {
if(press("X")>0) p+='X';
else p+='Y';
}
if(n==1) return p;
vector<char> c;
if(p=="A") c={'B','X','Y'};
if(p=="B") c={'A','X','Y'};
if(p=="X") c={'A','B','Y'};
if(p=="Y") c={'A','B','X'};
FOR(i, 0, n-2) {
// string send=p+c[0]+c[0]+p+c[0]+c[1]+p+c[0]+c[2]+p+c[1];
string send=p;
send+=c[0];
send+=c[0];
send+=p;
send+=c[0];
send+=c[1];
send+=p;
send+=c[0];
send+=c[2];
send+=p;
send+=c[1];
int k=press(send);
if(k==sz(p)) p+=c[2];
else if(k==sz(p)+1) p+=c[1];
else{
// cout << send << " " << p << " " << k << endl;
assert(k==sz(p)+2);
p+=c[0];
}
}
if(press(p+c[0]+p+c[1])==sz(p)+1) {
if(press(p+c[0])==sz(p)+1) p+=c[0];
else p+=c[1];
}
else {
p+=c[2];
}
return p;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |