#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
#define popcount(n) __builtin_popcountll(n)
#define clz(n) __builtin_clzll(n)
#define print(a) cerr << "[" << #a << " = " << (a) << "] "
#define dbg(a) cerr << __LINE__ << ": "; print(a); cerr << "\n"
#define sz(a) (int)((a).size())
string guess_sequence(int n) {
if (n == 1) {
if (press("A")) return "A";
if (press("B")) return "B";
if (press("X")) return "X";
return "Y";
}
vector<string> v = {"A", "B", "X", "Y"};
int cnt = 0;
string s = "";
int res = press("AB");
if (res >= 1) {
int res = press("A");
if (res == 1) s += "A";
else s += "B";
}
else {
int res = press("X");
if (res == 1) s += "X";
else s += "Y";
}
vector<string> nv;
for (auto x : v) {
if (x == s) continue;
nv.push_back(x);
}
v = nv;
// dbg(s);
for (int i = 1; i < n; ++i) {
if (i == n - 1) {
if (press(s + v[0]) - sz(s) == 1) s += v[0];
else if (press(s + v[1]) - sz(s) == 1) s += v[1];
else s += v[2];
continue;
}
string p = s + v[0] + v[0] + s + v[0] + v[1] + s + v[0] + v[2] + s + v[1] + s[0];
int res = press(p) - sz(s);
if (res == 2) s += v[0];
else if (res == 1) s += v[1];
else s += v[2];
// dbg(s);
}
return s;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |