Submission #1248377

#TimeUsernameProblemLanguageResultExecution timeMemory
1248377fve5Combo (IOI18_combo)C++17
100 / 100
7 ms484 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; string others(char x) { switch (x) { case 'A': return "BXY"; case 'B': return "AXY"; case 'X': return "ABY"; case 'Y': return "ABX"; } assert(false); } string guess(int N, char init) { string ans; ans.push_back(init); if (N == 1) return ans; string o = others(init); for (int i = 1; i < N - 1; i++) { int m = press(ans + o[0] + o[0] + ans + o[0] + o[1] + ans + o[0] + o[2] + ans + o[1]); if (m == i) ans.push_back(o[2]); else if (m == i + 1) ans.push_back(o[1]); else if (m == i + 2) ans.push_back(o[0]); else assert(false); } if (press(ans + o[0]) == N) return ans + o[0]; if (press(ans + o[1]) == N) return ans + o[1]; return ans + o[2]; } string guess_sequence(int N) { if (press("AB") != 0) { if (press("A")) { return guess(N, 'A'); } else { return guess(N, 'B'); } } else { if (press("X")) { return guess(N, 'X'); } else { return guess(N, 'Y'); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...