Submission #1230187

#TimeUsernameProblemLanguageResultExecution timeMemory
1230187fauntleroy콤보 (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include <iostream> #include <cstdio> #include <vector> #include <array> #include <string> #include <algorithm> #include <numeric> #include <map> #include <unordered_map> #include <set> #include <unordered_set> #include <queue> #include <cmath> #include <climits> #include <iomanip> #include <limits> #include <tuple> #include <stack> #include <bitset> #include <cstring> #include <sstream> #include <functional> #include <random> #include "combo.h" using namespace std; string guess_sequence(int N) { string ans; if (press("AB")) { if (press("A") == 1) ans.push_back('A'); else ans.push_back('B'); } else if (press("X") == 1) ans.push_back('X'); else ans.push_back('Y'); if (N == 1) return ans; char p[3]; int k = 0; for (char c : {'A', 'B', 'X', 'Y'}) if (c != ans[0]) p[k++] = c; for (int i = 1; i < N - 1; i++) { string ask; ask += ans; ask += p[0]; ask += ans; ask += p[1]; ask += p[0]; ask += ans; ask += p[1]; ask += p[1]; ask += ans; ask += p[1]; ask += p[2]; int q = press(ask); if (q == ans.size() + 2) ans.push_back(p[1]); else if (q == ans.size() + 1) ans.push_back(p[0]); else ans.push_back(p[2]); } for (int i = 0; i < 2; ++i) if (press(ans + p[i]) == N) return ans + p[i]; return ans + p[2]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...