#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
#define name "TENBAI"
#define fi first
#define se second
#define endl '\n'
#define setmin(x, y) x = min((x), (y))
#define setmax(x, y) x = max((x), (y))
#define sqr(x) ((x) * (x))
#define all(x) x.begin(), x.end()
mt19937 hdp(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);}
string s;
string guess_sequence(int N)
{
s = "ABXY";
char f;
f = (press("AB") ? (press("A") ? 'A' : 'B') : (press("X") ? 'X' : 'Y'));
s.erase(find(all(s), f));
string s1, s2;
s1 = f + string(N, s[0]), s2 = f + string(N, s[1]);
int cr = 1;
while (cr < N)
{
int t = press(s1 + s2);
if (s1.back() != s2.back())
{
char x = s1.back(), y = s2.back(), z = accumulate(all(s), 0) - x - y;
if (t == cr)
{
s1.resize(cr); s2.resize(cr);
s1 += z; s2 += z;
s1 += string(N, x); s2 += string(N, y);
cr++;
}
else
{
cr = t;
s1.resize(cr); s2.resize(cr);
s1 += string(N, z); s2 += string(N, z);
}
}
else
{
char x = s1[cr - 1], y = s2[cr - 1], z = accumulate(all(s), 0) - x - y;
if (t == cr)
{
s1.resize(cr); s2.resize(cr);
s1 += y; s2 += x;
s1 += string(N, x); s2 += string(N, y);
cr++;
}
else
{
cr = t;
s1.resize(cr); s2.resize(cr);
s1 += string(N, z); s2 += string(N, z);
}
}
}
s1.resize(cr); s2.resize(cr);
if (s1 == s2)
return s1;
return (press(s1) == N ? s1 : s2);
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |