#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
#define ll long long
int press(string p);
string guess_sequence(int N)
{
string l = "ABXY";
if(N == 1)
{
ll r = press("AB");
if(r)
{
if(press("A")) return "A";
else return "B";
}
else
{
if(press("X")) return "X";
else return "Y";
}
}
string ans = "";
ll r = press("AB");
if(r)
{
if(press("A")) ans = "A";
else ans = "B";
}
else
{
if(press("X")) ans = "X";
else ans = "Y";
}
char c = ans[0];
l.erase(find(l.begin(),l.end(), c));
while(ans.size() != N-1)
{
// cout << "Size: " << ans.size() << " ans: " << ans << "\n";
string q = ans + l[0];
for(int i= 0; i < 3; i++)
{
q += ans + l[1] + l[i];
}
ll r = press(q);
if(r == ans.size())
ans += l[2];
else if(r == ans.size()+1)
ans += l[0];
else ans += l[1];
}
// cout << "Size: " << ans.size() << " ans: " << ans << "\n";
assert(ans.size() == N-1);
string st = ans + l[0] + ans + l[1];
assert(st.size() <= 4*N);
r = press(st);
if(r == N)
{
if(press(ans + l[0]) == N) ans += l[0];
else ans += l[1];
}
else
{
return ans + l[2];
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |