This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "combo.h"
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pp pop_back
#define mp make_pair
#define bb back
#define ff first
#define ss second
using namespace std;
string pos = "ABXY";
string guess_sequence(int n) {
string f = "AB";
if (press(f) != 0) {
f = "A";
if (press(f) == 0) f = "B";
} else {
f = "X";
if (press(f) == 0) f = "Y";
}
string s = "";
for (int i = 0; i < 4*n; i++)
s += f;
string rem = "";
for (int i = 0; i < 4; i++) {
if (pos[i] == f[0]) continue;
rem += pos[i];
}
// cout << f << '\n';
for (int i = 1; i < n-1; i++) {
// cout << s << '\n';
s[i] = rem[0];
s[i+n] = rem[1];
s[i+n+1] = rem[0];
s[i+2*n] = rem[1];
s[i+2*n+1] = rem[1];
s[i+3*n] = rem[1];
s[i+3*n+1] = rem[2];
int now = press(s);
if (now == i+1)
s[i] = rem[0], s[i+n] = rem[0], s[i+n*2] = rem[0], s[i+n*3] = rem[0];
else if (now == i+2)
s[i] = rem[1], s[i+n] = rem[1], s[i+n*2] = rem[1], s[i+n*3] = rem[1];
else
s[i] = rem[2], s[i+n] = rem[2], s[i+n*2] = rem[2], s[i+n*3] = rem[2];
s[i+1] = f[0], s[i+n+1] = f[0], s[i+n*2+1] = f[0], s[i+n*3+1] = f[0];
}
s[n-1] = rem[0];
s[n*2-1] = rem[1];
if (press(s) == n) {
s[n*2-1] = f[0];
if (press(s) != n) s[n-1] = rem[1];
} else s[n-1] = rem[2];
s = s.substr(0, n);
return s;
}
/*
ABXYY
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |