이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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];
}
if (n > 1) {
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... |