Submission #398819

#TimeUsernameProblemLanguageResultExecution timeMemory
398819mshandilyaCombo (IOI18_combo)C++14
0 / 100
1 ms200 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; std::string guess_sequence(int N) { std::string query; std::vector<char> knownstr; char start; int preknown = 0, score; while(preknown<N) { string p(knownstr.begin(), knownstr.end()); if(preknown==0) { score = press("AB"); if(score){ score = press("A"); if(score) start = 'A'; else start = 'B'; } else{ score = press("X"); if(score) start = 'X'; else start = 'Y'; } knownstr.push_back(start); preknown++; } else if(preknown==N-1) { query = p + "AB"; score = press(query); if(score==preknown+1) { score = press(p + "A"); if(score==preknown+1) knownstr.push_back('A'); else knownstr.push_back('B'); } else { score = press(p + "X"); if(score==preknown+1) knownstr.push_back('X'); else knownstr.push_back('Y'); } preknown++; } else { switch(start) { case 'A': query = p + "BB" + p + "BX" + p + "BY" + p + "X"; score = press(query); if(score==preknown+2) knownstr.push_back('B'); else if(score==preknown+1) knownstr.push_back('X'); else knownstr.push_back('Y'); break; case 'B': query = p + "AA" + p + "AX" + p + "AY" + p + "X"; score = press(query); if(score==preknown+2) knownstr.push_back('A'); else if(score==preknown+1) knownstr.push_back('X'); else knownstr.push_back('Y'); break; case 'X': query = p + "AA" + p + "AB" + p + "AY" + p + "B"; score = press(query); if(score==preknown+2) knownstr.push_back('A'); else if(score==preknown+1) knownstr.push_back('B'); else knownstr.push_back('Y'); break; case 'Y': query = p + "AA" + p + "AB" + p + "AX" + p + "B"; score = press(query); if(score==preknown+2) knownstr.push_back('A'); else if(score==preknown+1) knownstr.push_back('B'); else knownstr.push_back('X'); break; } preknown++; } } string S(knownstr.begin(), knownstr.end()); return S; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...