# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1141086 | b00legen | Combo (IOI18_combo) | C++17 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
string ans;
int press(string p) {
cout << p << endl;
int res;
cin >> res;
return res;
}
string guess_sequence(int N) {
string ans;
//A B X Y
string var;
int prev = 0;
for (int cur = 0; cur < N; cur++) {
if (ans.size() == 0) {
if (press("A"))
ans += "A";
else if (press("B"))
ans += "B";
else if (press("X"))
ans += "X";
else
ans += "Y";
for (int i = 0; i < 4; i++) {
if (i == 0 && ans == "A")
continue;
if (i == 1 && ans == "B")
continue;
if (i == 2 && ans == "X")
continue;
if (i == 3 && ans == "Y")
continue;
if (i == 0)
var += "A";
else if (i == 1)
var += "B";
else if (i == 2)
var += "X";
else
var += "Y";
}
prev = 1;
} else {
for (int i = 0; i < 2; i++) {
int res = press(ans + var[i]);
if (res > prev) {
prev = res;
ans += var[i];
break;
}
}
if (prev == cur) {
ans += var[2];
prev++;
}
}
}
return ans;
}