# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1200445 | nekolie | 콤보 (IOI18_combo) | C++20 | 0 ms | 0 KiB |
// When she's prettier than any DP you've ever seen...
#include <bits/stdc++.h>
using namespace std;
string guess_sequence(int n) {
string odp;
int m = 0, x = press("AB");
if (x == 0) {
x = press("X"), m++;
if (x == 1)
odp += 'X';
else
odp += 'Y'
}
else {
x = press("A"), m++;
if (x == 1)
odp += 'A';
else
odp += 'B'
}
while (m+2 <= n) {
if (odp[0] == 'A') {
x = press(odp+"BB"+odp+"BX"+odp+"BY"+odp+"X");
if (x == m)
odp += 'Y';
else if (x == m+1)
odp += 'X';
else
odp += 'B';
}
else if (odp[0] == 'B') {
x = press(odp+"AA"+odp+"AX"+odp+"AY"+odp+"X");
if (x == m)
odp += 'Y';
else if (x == m+1)
odp += 'X';
else
odp += 'A';
}
else if (odp[0] == 'X') {
x = press(odp+"AA"+odp+"AB"+odp+"AY"+odp+"B");
if (x == m)
odp += 'Y';
else if (x == m+1)
odp += 'B';
else
odp += 'A';
}
else {
x = press(odp+"BB"+odp+"BX"+odp+"BA"+odp+"X");
if (x == m)
odp += 'A';
else if (x == m+1)
odp += 'X';
else
odp += 'B';
}
m++;
}
if (m == n-1) {
if (odp[0] == 'A') {
x = press(odp+"B");
if (x == n)
odp += 'B';
else {
x = press(odp+"X");
if (x == n)
odp += 'X';
else
odp += 'Y';
}
}
else if (odp[0] == 'B') {
x = press(odp+"A");
if (x == n)
odp += 'A';
else {
x = press(odp+"X");
if (x == n)
odp += 'X';
else
odp += 'Y';
}
}
else if (odp[0] == 'X') {
x = press(odp+"A");
if (x == n)
odp += 'A';
else {
x = press(odp+"B");
if (x == n)
odp += 'B';
else
odp += 'Y';
}
}
else {
x = press(odp+"B");
if (x == n)
odp += 'B';
else {
x = press(odp+"X");
if (x == n)
odp += 'X';
else
odp += 'A';
}
}
}
return odp;
}