#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
set<char> st;
vector<char> chs;
string tik(vector<string> v){
string ans = "";
for (string s : v) ans += s;
return ans;
}
string guess_sequence(int N) {
string p = "";
string bas;
if (N == 1) {
int a = press("A"), b = press("B"), x = press("X");
if (a == 1) return "A";
if (b == 1) return "B";
if (x == 1) return "X";
else return "Y";
}
int ab = press("AB"), bx = press("BX");
if (ab == 2) {
bas = "AB";
}
else if (bx == 2) {
bas = "AB";
}
else if (ab == 1) {
if (bx == 1) {
int ba = press("BA");
if (ba == 2) bas = "BA";
else bas = "BY";
}
if (bx == 0) {
int ax = press("AX");
if (ax == 2) bas = "AX";
else bas = "AY";
}
}
if (ab == 0) {
if (bx == 1) {
int xa = press("XA"), xb = press("XB");
if (xa == 2) bas = "XA";
else if (xb == 2) bas = "XB";
else bas = "XY";
}
if (bx == 0) {
int ya = press("YA"), yb = press("YB");
if (ya == 2) bas = "YA";
else if (yb == 2) bas = "YB";
else bas = "YX";
}
} // max 4 guesses to gues the first two;
if (N == 2) return bas;
st = {'A', 'B', 'Y', 'X'};
st.erase(bas[0]);
for (char c : st) chs.push_back(c);
while (bas.size() != N - 1) {
string a = bas, b = bas, c = bas, d = bas;
a += chs[0]; b += chs[0]; c += chs[0];
a += chs[0]; b += chs[1]; c += chs[2];
d += chs[1];
string cur = tik({a, b, c, d});
int ans = press(cur);
if (ans == bas.size() + 2) bas += chs[0];
else if (ans == bas.size() + 1) bas += chs[1];
else if (ans == bas.size()) bas += chs[2];
// cout << "currently " << bas << endl;
}
string a = bas, b = bas, c = bas;
a += chs[0];
b += chs[1];
c += chs[2];
int as = press(a);
if (as == N) return a;
int bs = press(b);
if (bs == N) return b;
return c;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |