Submission #211006

#TimeUsernameProblemLanguageResultExecution timeMemory
211006SeanliuCombo (IOI18_combo)C++14
5 / 100
1 ms200 KiB
#include <string> #include "combo.h" #include <vector> #include <deque> using namespace std; const int maxN = 2e3 + 10; int ans[maxN]; string c; vector<int> tmp; string getStr(){ string s = ""; for(int x : tmp) s += c[x]; return s; } std::string guess_sequence(int N) { int r; c = ""; string current = "A"; r = press(current); if(r == 1){ c = "ABXY"; } current = "B"; r = press(current); if(r == 1){ c = "BAXY"; } current = "X"; r = press(current); if(r == 1){ c = "XBAY"; } if(c == "") c = "YABX"; for(int i = 1; i < N - 1; i++){ tmp.clear(); for(int j = 0; j < i; j++) tmp.push_back(ans[j]); tmp.push_back(1); for(int j = 0; j < i; j++) tmp.push_back(ans[j]); tmp.push_back(2); tmp.push_back(1); for(int j = 0; j < i; j++) tmp.push_back(ans[j]); tmp.push_back(2); tmp.push_back(2); for(int j = 0; j < i; j++) tmp.push_back(ans[j]); tmp.push_back(2); tmp.push_back(3); r = press(getStr()); if(r == i) ans[i] = 3; else if(r == i + 1) ans[i] = 1; else ans[i] = 2; } for(int i = 1; i < 4; i++){ tmp.clear(); for(int j = 0; j < N - 1; j++) tmp.push_back(ans[j]); tmp.push_back(i); if(press(getStr()) == N) return getStr(); } return getStr(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...