Submission #1230142

#TimeUsernameProblemLanguageResultExecution timeMemory
1230142fauntleroyCombo (IOI18_combo)C++20
0 / 100
0 ms408 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; for (char c : {'A', 'B', 'X'}) { if (press(string(1, c))) { ans.push_back(c); break; } } if (!ans.size()) 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 - 2; 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]) == ans.size() + 1) ans.push_back(p[i]); if (ans.size() == N - 2) ans.push_back(p[2]); for (int i = 0; i < 2; ++i) if (press(ans + p[i]) == N) ans.push_back(p[i]); if (ans.size() == N - 1) ans.push_back(p[2]); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...