Submission #1290019

#TimeUsernameProblemLanguageResultExecution timeMemory
1290019oruc콤보 (IOI18_combo)C++20
100 / 100
11 ms480 KiB
#include <bits/stdc++.h> using namespace std; #include "combo.h" #define pb push_back string guess_sequence(int N){ string ans = ""; char ilk = ' '; if(N > 1){ int ab = press("AB"); int ax = press("AX"); if(ab == 0){ if(ax == 0){ ans = "Y"; } else if(ax == 1){ ans = "X"; } else{ ans = "A"; } } else if(ab == 1){ if(ax == 0){ ans = "B"; } else if(ax == 1){ ans = "A"; } else{ ans = "A"; } } else{ ans = "A"; } ilk = ans[0]; } else{ int ok = press("A"); if(ok){ return "A"; } ok = press("B"); if(ok){ return "B"; } ok = press("X"); if(ok){ return "X"; } return "Y"; } vector<char> v; for(char j: {'A','B','X','Y'}){ if(j == ilk) continue; v.pb(j); } for(int i = 2; i <= N-1; i++){ int ok = press(ans + v[0] + ans + v[1] + v[0] + ans + v[1] + v[1] + ans + v[1] + v[2]); if(ok == i){ ans += v[0]; } else if(ok == i-1){ ans += v[2]; } else{ ans += v[1]; } } int ok = press(ans + "A" + ans + "B"); if(ok == N){ ok = press(ans + "A"); if(ok == N){ ans += "A"; } else{ ans += "B"; } } else{ ok = press(ans + "X"); if(ok == N){ ans += "X"; } else{ ans += "Y"; } } //cout << ans << endl; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...