| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1296774 | ayaz | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include "combo.h"
#include "bits/stdc++.h"
using namespace std;
#define int long long
#define isz(x) (int)x.size()
string guess_sequence(int n) {
string res;
vector<char> t(3);
if (press("AB")) {
if (press("A")) {
res += 'A';
t = {'B', 'X', 'Y'};
} else {
res += 'B';
t = {'A', 'X', 'Y'};
}
} else {
if (press("X")) {
res += 'X';
t = {'B', 'A', 'Y'};
} else {
res += 'Y';
t = {'A', 'X', 'B'};
}
}
assert(isz(res) == 1);
for (int i = 1; i < n-1; i++) {
auto s = res + t[0] + t[0] + res + t[0] + t[1] + res + t[0] + t[2] + res + t[1];
auto x = press(s);
if (x == isz(res) + 2) {
res += t[0];
} else if (x == isz(res) + 1) {
res += t[1];
} else if (x == isz(res)) {
res += t[2];
}
}
if (press(res + t[0]) == isz(res) + 1) {
res += t[0];
} else if (press(res + t[1]) == isz(res) + 1) {
res += t[1];
} else {
res += t[2];
}
return res;
}
