Submission #525785

#TimeUsernameProblemLanguageResultExecution timeMemory
525785HanksburgerCombo (IOI18_combo)C++17
100 / 100
27 ms536 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; string tmp, ans; string guess_sequence(int n) { if (n==1) { int res1=press("A"), res2=press("B"), res3=press("X"); if (res1==1) return "A"; else if (res2==1) return "B"; else if (res3==1) return "X"; else return "Y"; } int res1=press("AB"); if (res1) { int res2=press("A"); if (res2) { ans.append("A"); for (int i=2; i<n; i++) { tmp.clear(); tmp.append(ans); tmp.append("BB"); tmp.append(ans); tmp.append("BX"); tmp.append(ans); tmp.append("BY"); tmp.append(ans); tmp.append("X"); int res=press(tmp); if (res==i-1) ans.append("Y"); else if (res==i) ans.append("X"); else ans.append("B"); } tmp.clear(); tmp.append(ans); tmp.append("B"); int res3=press(tmp); tmp.clear(); tmp.append(ans); tmp.append("X"); int res4=press(tmp); if (res3==n) ans.append("B"); else if (res4==n) ans.append("X"); else ans.append("Y"); } else { ans.append("B"); for (int i=2; i<n; i++) { tmp.clear(); tmp.append(ans); tmp.append("AA"); tmp.append(ans); tmp.append("AX"); tmp.append(ans); tmp.append("AY"); tmp.append(ans); tmp.append("X"); int res=press(tmp); if (res==i-1) ans.append("Y"); else if (res==i) ans.append("X"); else ans.append("A"); } tmp.clear(); tmp.append(ans); tmp.append("A"); int res3=press(tmp); tmp.clear(); tmp.append(ans); tmp.append("X"); int res4=press(tmp); if (res3==n) ans.append("A"); else if (res4==n) ans.append("X"); else ans.append("Y"); } } else { int res2=press("X"); if (res2) { ans.append("X"); for (int i=2; i<n; i++) { tmp.clear(); tmp.append(ans); tmp.append("AA"); tmp.append(ans); tmp.append("AB"); tmp.append(ans); tmp.append("AY"); tmp.append(ans); tmp.append("B"); int res=press(tmp); if (res==i-1) ans.append("Y"); else if (res==i) ans.append("B"); else ans.append("A"); } tmp.clear(); tmp.append(ans); tmp.append("A"); int res3=press(tmp); tmp.clear(); tmp.append(ans); tmp.append("B"); int res4=press(tmp); if (res3==n) ans.append("A"); else if (res4==n) ans.append("B"); else ans.append("Y"); } else { ans.append("Y"); for (int i=2; i<n; i++) { tmp.clear(); tmp.append(ans); tmp.append("AA"); tmp.append(ans); tmp.append("AB"); tmp.append(ans); tmp.append("AX"); tmp.append(ans); tmp.append("B"); int res=press(tmp); if (res==i-1) ans.append("X"); else if (res==i) ans.append("B"); else ans.append("A"); } tmp.clear(); tmp.append(ans); tmp.append("A"); int res3=press(tmp); tmp.clear(); tmp.append(ans); tmp.append("B"); int res4=press(tmp); if (res3==n) ans.append("A"); else if (res4==n) ans.append("B"); else ans.append("X"); } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...