#include <bits/stdc++.h>
#include "combo.h"
// #include "grader.cpp"
using namespace std;
#define all(x) x.begin(), x.end()
#define nl '\n'
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define rnd(l, r) uniform_int_distribution<int>(l, r)(rng)
string guess_sequence(int n) {
vector<char> F {'B', 'X', 'Y'};
string p(n, 'A');
int pf = 0;
if(press(p)) {
p = string(n, 'B');
p[0] = 'A';
pf = 1;
F.erase(find(all(F), 'B'));
}
if(!pf) {
for(int i = 0; i < 2; i++) {
p[0] = F[i];
int u = press(p);
if(u) {
p[0] = F[i];
pf = u;
F.erase(find(all(F), F[i]));
break;
}
}
}
if(!pf) {
p[0] = F[2];
pf = 1;
F.erase(find(all(F), F[2]));
}
pf = press(p);
for(int i = 0; i < n; i++) {
if(i < pf) continue;
int idx1 = rnd(0, 1);
int idx2 = idx1;
while(idx2 == idx1) idx2 = rnd(0, 1);
for(auto j : { idx1, idx2 }) {
p[i] = F[j];
int u = press(p);
if(u - pf > 0) {
pf = u;
break;
}
}
}
return p;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |