#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
const char ch[4] = {'A', 'B', 'X', 'Y'};
// int press(string p) {
// cout << "ASK " << p << endl;
// int res; cin >> res;
// return res;
// }
char getFirst(string s) {
char bck = s.back(); s.pop_back();
return press(s) == 1 ? s[0] : bck;
}
string guess_sequence(int N) {
char first = press("AB") == 0 ? getFirst("XY") : getFirst("AB");
int idFirst;
for (int i = 0; i < 4; ++i)
if (ch[i] == first)
idFirst = i;
vector<char> remain;
for (int i = 0; i < 4; ++i)
if (i != idFirst)
remain.push_back(ch[i]);
string s = ""; s += first;
if (N == 1) return s;
for (int i = 2; i < N; ++i) {
string p = s + remain[0] + s + remain[1] + remain[0] + s + remain[1] + remain[1] + s + remain[1] + remain[2];
int ask = press(p);
if (ask == i)
s += remain[0];
else if (ask == i + 1)
s += remain[1];
else
s += remain[2];
}
string p = s + 'A' + s + 'B';
if (press(p) == N) {
if (press(s + 'A') == N)
s += 'A';
else
s += 'B';
} else {
if (press(s + 'X') == N)
s += 'X';
else
s += 'Y';
}
return s;
}
// int main() {
// int n;
// cin >> n;
// cout << guess_sequence(n);
// return 0;
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |