Submission #388352

#TimeUsernameProblemLanguageResultExecution timeMemory
388352warner1129Combo (IOI18_combo)C++17
0 / 100
1 ms200 KiB
// #define local #include <bits/stdc++.h> using namespace std; #ifdef local int press(string p) { cout << p; int ret; cin >> ret; return ret; } string guess_sequence(int); signed main() { int n; cin >> n; cout << guess_sequence(n) << '\n'; return 0; } #else #include <combo.h> #endif string guess_sequence(int n) { string ans, tmp; int ret, len = 1; ret = press("AB"); if (ret == 1) { ret = press("A"); if (ret == 1) ans = "A"; else ans = "B"; } else { ret = press("X"); if (ret == 1) ans = "X"; else ans = "Y"; } vector<string> L; if ("A" != ans) L.push_back("A"); if ("B" != ans) L.push_back("B"); if ("X" != ans) L.push_back("X"); if ("Y" != ans) L.push_back("Y"); string P[4]; P[0] = L[0] + L[0], P[1] = L[0] + L[1], P[2] = L[0] + L[2]; P[3] = L[1]; for (int i = 2; i < n; i++) { tmp = ""; for (int j = 0; j < 4; j++) tmp += (ans + P[j]); ret = press(tmp); if (ret == len + 2) ans += L[0]; else if (ret == len + 1) ans += L[1]; else if (ret == len) ans += L[2]; len++; } ret = press(ans + L[0] + ans + L[1]); if (ret == len+1) { ret = press(ans + L[0]); if (ret == len+1) ans += L[0]; else ans += L[1]; } else if (ret == len) ans += L[2]; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...