Submission #807809

#TimeUsernameProblemLanguageResultExecution timeMemory
807809math_rabbit_1028Combo (IOI18_combo)C++14
100 / 100
34 ms500 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; int n; string solve(string s, string t, string u, string v) { string ans, query; ans = s; for (int i = 2; i < n; i++) { query = ""; query += ans; query += t; query += t; query += ans; query += t; query += u; query += ans; query += t; query += v; query += ans; query += u; int res = press(query); if (res == i + 1) ans += t; if (res == i) ans += u; if (res == i - 1) ans += v; } query = ans + t; if (press(query) == n) return query; query = ans + u; if (press(query) == n) return query; query = ans + v; return query; } std::string guess_sequence(int N) { n = N; int ab = press("AB"); if (ab) { int a = press("A"); if (a == 1) { if (n == 1) return "A"; return solve("A", "B", "X", "Y"); } else { if (n == 1) return "B"; return solve("B", "A", "X", "Y"); } } else { int x = press("X"); if (x == 1) { if (n == 1) return "X"; return solve("X", "A", "B", "Y"); } else { if (n == 1) return "Y"; return solve("Y", "A", "B", "X"); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...