Submission #705622

#TimeUsernameProblemLanguageResultExecution timeMemory
705622garyyeCombo (IOI18_combo)C++14
5 / 100
1 ms208 KiB
#include "combo.h" #include <iostream> #include <vector> #include <algorithm> using namespace std; int mpress(string s) { int g = press(s); // cout << "Press " << s << " = " << g << endl; return g; } std::string guess_sequence(int N) { vector<char> c = {'A', 'B', 'X', 'Y'}; string f = ""; if(press("XY") > 0) { f = mpress("X") > 0 ? "X" : "Y"; } else { f = mpress("A") > 0 ? "A" : "B"; } c.erase(find(c.begin(), c.end(), f[0])); // A. -> 1 // BA. -> 2 // BB. -> 2 // BC. -> 2 // B. -> 1 // CA -> 2 // CB -> 2 for(int i = 1; i < N - 1; ++i) { string s = ""; s += f + c[0]; s += f + c[1] + c[0]; s += f + c[1] + c[1]; s += f + c[1] + c[2]; int g = mpress(s) - i; if(g == 0) f += c[2]; if(g == 1) f += c[0]; if(g == 2) f += c[1]; // cout << "f = " << f << endl; } // 2 + (N - 2) calls done if(mpress(f + c[0]) == N) return f + c[0]; if(mpress(f + c[1]) == N) return f + c[1]; return f + c[2]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...