Submission #777120

#TimeUsernameProblemLanguageResultExecution timeMemory
777120welleythCombo (IOI18_combo)C++17
100 / 100
25 ms616 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; mt19937 rnd(time(nullptr)); std::string guess_sequence(int N){ string ans = ""; if(press("AB")){ if(press("A")) ans = "A"; else ans = "B"; } else { if(press("X")) ans = "X"; else ans = "Y"; } vector<string> order; string CH[] = {"A","B","X","Y"}; for(int i = 0; i < 4; i++){ if(CH[i] != ans) order.push_back(CH[i]); } assert(order.size() == 3); for(int i = 2; i <= N; i++){ if(4*i + 3 <= 4*N){ int val = press(ans+order[0]+ans+order[1]+order[0]+ans+order[1]+order[1]+ans+order[1]+order[2]); if(val == i+1){ ans += order[1]; } else if(val == i) ans += order[0]; else ans += order[2]; continue; } shuffle(order.begin(),order.end(),rnd); if(press(ans + order[0] + ans + order[1]) == i){ if(press(ans + order[0]) == i) ans += order[0]; else ans += order[1]; } else ans += order[2]; /// AB /// AC /// AA /// A B CA CB CC /// 5i + 3 /// AA AB AC B } return ans; } /// sz /// 3^n < 4n
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...