Submission #1295785

#TimeUsernameProblemLanguageResultExecution timeMemory
1295785FatonimCombo (IOI18_combo)C++20
0 / 100
1 ms400 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; #define popcount(n) __builtin_popcountll(n) #define clz(n) __builtin_clzll(n) #define print(a) cerr << "[" << #a << " = " << (a) << "] " #define dbg(a) cerr << __LINE__ << ": "; print(a); cerr << "\n" #define sz(a) (int)((a).size()) string guess_sequence(int n) { if (n == 1) { if (press("A")) return "A"; if (press("B")) return "B"; if (press("X")) return "X"; return "Y"; } vector<string> v = {"A", "B", "X", "Y"}; int cnt = 0; string s = ""; int res = press("AB"); if (res >= 1) { int res = press("A"); if (res == 1) s += "A"; else s += "B"; } else { int res = press("X"); if (res == 1) s += "X"; else s += "B"; } vector<string> nv; for (auto x : v) { if (x == s) continue; nv.push_back(x); } v = nv; // dbg(s); for (int i = 1; i < n; ++i) { if (i == n - 1) { if (press(s + v[0]) - sz(s) == 1) s += v[0]; else if (press(s + v[1]) - sz(s) == 1) s += v[1]; else s += v[2]; continue; } string p = s + v[0] + v[0] + s + v[0] + v[1] + s + v[0] + v[2] + s + v[1] + s[0]; int res = press(p) - sz(s); if (res == 2) s += v[0]; else if (res == 1) s += v[1]; else s += v[2]; // dbg(s); } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...