# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
861690 | Ariadna | 콤보 (IOI18_combo) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int press(string& p);
vector < char > aux;
string first_char() {
string s = "AB";
if (press(s)) {
s = "A";
if (press(s)) {
aux = {'B', 'X', 'Y'};
return s;
}
aux = {'A', 'X', 'Y'};
return "B";
}
s = "X";
if (press(s)) {
aux = {'A', 'B', 'Y'};
return s;
}
aux = {'A', 'B', 'X'};
return "Y";
}
string guess_sequence(int N) {
string s = first_char();
for (int i = 2; i < N; ++i) {
cout << i << " " << s << endl;
string q = s + aux[0] + aux[0] + s + aux[0] + aux[1] + s + aux[0] + aux[2] + s + aux[1];
int ans = press(q);
if (ans == i + 1) s += aux[0];
else if (ans == i) s += aux[1];
else s += aux[2];
}
if (N > 1) {
s += aux[0];
if (press(s) == N) return s;
s[N - 1] = aux[1];
if (press(s) == N) return s;
s[N - 1] = aux[2];
return s;
}
return s;
}