#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
int doPress(string s){
cerr <<"q: "<<s << endl;
int ans =press(s);
cerr <<"ans: "<<ans<<endl;
return ans;
}
std::string guess_sequence(int N) {
int n = N;
string res = "";
// get start
vector<char> allow;
if(doPress("AB") >= 1){
cerr<<"case1"<<endl;
if(doPress("A") == 1){
res = "A";
allow = {'B','X','Y'};
}else{
res = "B";
allow = {'A','X','Y'};
}
} else{
cerr<<"case2"<<endl;
if(doPress("X") == 1){
res = "X";
allow = {'B','A','Y'};
}else{
res = "Y";
allow = {'B','X','A'};
}
}
cerr <<"first: " << res << endl;
for(int i = 1; i < n-1; i++){
string q = res + allow[0] + res + allow[1] + allow[0]+ res + allow[1] + allow[1]+ res + allow[1] + allow[2];
int ans = doPress(q);
if(ans == i+1){
res += allow[0];
}else if(ans == i+2){
res += allow[1];
}else{
res += allow[2];
}
cerr<<"current res: " << res << endl;
}
if(res.size() < n){
if(doPress(res + allow[0]) == n){
res += allow[0];
}else if(doPress(res+allow[1]) == n){
res += allow[1];
}else{
res += allow[2];
}
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |