Submission #936965

#TimeUsernameProblemLanguageResultExecution timeMemory
936965MuntherCarrotCombo (IOI18_combo)C++14
5 / 100
1 ms500 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; // int press(string s) string guess_sequence(int N){ string ans; int x = 0; if(press("AB")){ if(press("B")) x = 1; } else{ if(press("X")) x = 2; else x = 3; } if(x == 0){ ans = "A"; while((int)ans.size() < N - 1){ string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XY"; int res = press(f); if(res == (int)ans.size()){ ans += "Y"; } else if(res == (int)ans.size() + 1){ ans += "B"; } else{ ans += "X"; } } if(press(ans + "X") == N) ans += "X"; else if(press(ans + "Y") == N) ans += "Y"; else ans += "B"; } else if(x == 1){ ans = "B"; while((int)ans.size() < N - 1){ string f = ans + "A" + ans + "XA" + ans + "XX" + ans + "XY"; int res = press(f); if(res == (int)ans.size()){ ans += "Y"; } else if(res == (int)ans.size() + 1){ ans += "A"; } else{ ans += "X"; } } if(press(ans + "X") == N) ans += "X"; else if(press(ans + "Y") == N) ans += "Y"; else ans += "A"; } else if(x == 2){ ans = "X"; while((int)ans.size() < N - 1){ string f = ans + "B" + ans + "AB" + ans + "AA" + ans + "AY"; int res = press(f); if(res == (int)ans.size()){ ans += "Y"; } else if(res == (int)ans.size() + 1){ ans += "B"; } else{ ans += "A"; } } if(press(ans + "A") == N) ans += "A"; else if(press(ans + "Y") == N) ans += "Y"; else ans += "B"; } else{ ans = "Y"; while((int)ans.size() < N - 1){ string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XA"; int res = press(f); if(res == (int)ans.size()){ ans += "A"; } else if(res == (int)ans.size() + 1){ ans += "B"; } else{ ans += "X"; } } if(press(ans + "X") == N) ans += "X"; else if(press(ans + "A") == N) ans += "A"; else ans += "B"; int cnt = 0; for(int i = 0; i < N; i++){ if(ans[i] == ans[0]) cnt++; } if(cnt != 1){ exit(-1); } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...