#include <bits/stdc++.h>
using namespace std;
// #define LOCAL
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
#ifdef LOCAL
int press(string p) {
cout << p << ": ";
int x; cin >> x;
return x;
}
#else
#include "combo.h"
#endif
string guess_sequence(int n) {
string a;
string all = "ABXY";
string cur = "ABXY";
{ // Find first
int ab = press("AB");
if (ab) {
int x = press(string(1, 'A'));
if (x) a = 'A', cur = "BXY";
else a = 'B', cur = "AXY";
}
else {
int x = press(string(1, 'X'));
if (x) a = 'X', cur = "ABY";
else a = 'Y', cur = "ABX";
}
}
if (n == 1) return a;
{ // Find middle
for (int i = 1; i < n-1; i++) {
string guess = a+cur[0] + a+cur[1]+cur[0] + a+cur[1]+cur[1] + a+cur[1]+cur[2];
int score = press(guess);
if (score == i+1) a += cur[0];
if (score == i+2) a += cur[1];
if (score == i+0) a += cur[2];
}
}
{ // Find last
if (press(a + cur[0]) == n) a += cur[0];
else if (press(a + cur[1]) == n) a += cur[1];
else a += cur[2];
}
return a;
}
#ifdef LOCAL
int main() {
int n; cin >> n;
cout << guess_sequence(n) << endl;
return 0;
}
#endif
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |