#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second
//#define int long long
#define all(x) (x).begin(), (x).end()
typedef long double ld;
typedef long long ll;
typedef pair<ll,ll> pll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<bool> vb;
typedef vector<vector<int>> vvi;
typedef vector<vector<bool>> vvb;
typedef vector<vector<ll>> vvll;
typedef vector<string> vs;
typedef vector<vector<string>> vvs;
typedef vector<char> vc;
typedef vector<vector<char>> vvc;
typedef map<int, int> mii;
typedef unordered_map<int, int> umii;
string guess_sequence(int N) {
string p = "";
// first letter
int x = press("AB");
if (x) {
x = press("A");
if (x) p += "A";
else p += "B";
} else {
x = press("X");
if (x) p += "X";
else p += "Y";
}
vs ops;
if (p[0] != 'A') ops.pb("A");
if (p[0] != 'B') ops.pb("B");
if (p[0] != 'X') ops.pb("X");
if (p[0] != 'Y') ops.pb("Y");
for (int i = 2; i <= N - 1; i++) {
assert(ops.size() == 3);
x = press(p + ops[0] + p + ops[1] + ops[0] + p + ops[1] + ops[1] + p + ops[1] + ops[2]);
if (x == p.size()) {
p += ops[2];
continue;
}
if (x == p.size() + 1) {
p += ops[0];
continue;
}
p += ops[1];
}
if (p.size() == N - 1) {
x = press(p + "A" + p + "B");
if (x == N) {
x = press(p + "A");
if (x == N) p += "A";
else p += "B";
} else {
x = press(p + "X");
if (x == N) p += "X";
else p += "Y";
}
}
return p;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |