Submission #1184548

#TimeUsernameProblemLanguageResultExecution timeMemory
1184548acoatoitgsCombo (IOI18_combo)C++20
100 / 100
8 ms524 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; #define ll long long int press(string p); string guess_sequence(int N) { string l = "ABXY"; if(N == 1) { ll r = press("AB"); if(r) { if(press("A")) return "A"; else return "B"; } else { if(press("X")) return "X"; else return "Y"; } } string ans = ""; ll r = press("AB"); if(r) { if(press("A")) ans = "A"; else ans = "B"; } else { if(press("X")) ans = "X"; else ans = "Y"; } char c = ans[0]; l.erase(find(l.begin(),l.end(), c)); while(ans.size() != N-1) { // cout << "Size: " << ans.size() << " ans: " << ans << "\n"; string q = ans + l[0]; for(int i= 0; i < 3; i++) { q += ans + l[1] + l[i]; } ll r = press(q); if(r == ans.size()) ans += l[2]; else if(r == ans.size()+1) ans += l[0]; else ans += l[1]; } // cout << "Size: " << ans.size() << " ans: " << ans << "\n"; assert(ans.size() == N-1); string st = ans + l[0] + ans + l[1]; assert(st.size() <= 4*N); r = press(st); if(r == N) { if(press(ans + l[0]) == N) ans += l[0]; else ans += l[1]; } else { return ans + l[2]; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...