Submission #1176522

#TimeUsernameProblemLanguageResultExecution timeMemory
1176522n3rm1nCombo (IOI18_combo)C++17
5 / 100
0 ms408 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; int n; string sure; /// a 0 /// b 1 /// x 2 /// y 3 char sym[5]; int first = 0; int feedback(string &p) { int coins = press(p); return coins; } void trypos(int i) { vector < char > g; for (int i = 0; i < 4; ++ i) { if(first == i)continue; g.push_back(sym[i]); } string p = ""; for (auto sec: g) { p += sure; p += g[0]; p += sec; } p += sure; p += g[1]; ///cout << "spot: " << sure << endl; ///cout << p << endl; int res = feedback(p); if(res == sure.size() + 2)sure += g[0]; else if(res == sure.size() + 1)sure += g[1]; else sure += g[2]; } void trylast() { vector < char > g; for (int i = 0; i < 4; ++ i) { if(first == i)continue; g.push_back(sym[i]); } string p = ""; p += sure; p += g[0]; p += sure; p += g[1]; int res = feedback(p); if(res == n-1)sure += g[2]; else { p = ""; p += sure; p += g[0]; if(feedback(p) == n)sure += g[0]; else sure += g[1]; } } std::string guess_sequence(int N) { n = N; sym[0] = 'A'; sym[1] = 'B'; sym[2] = 'X'; sym[3] = 'Y'; sure = ""; string p = "AB"; if(feedback(p) == 2)first = 0; else if(feedback(p) == 1) { p = "A"; if(feedback(p) == 1)first = 0; else first = 1; } else { p = "X"; if(feedback(p) == 1)first = 2; else first = 3; } sure += sym[first]; for (int i = 1; i < n-1; ++ i) trypos(i); trylast(); return sure; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...