Submission #1248566

#TimeUsernameProblemLanguageResultExecution timeMemory
1248566antonnCombo (IOI18_combo)C++20
0 / 100
19 ms408 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; /* string hidden; int press(string s) { set<string> st; for (int i = 0; i < s.size(); ++i) { string sub = ""; for (int j = i; j < s.size(); ++j) { sub += s[j]; st.insert(sub); } } int ans = 0; for (int i = 1; i <= hidden.size(); ++i) { string pref = ""; for (int j = 0; j < i; ++j) pref += hidden[j]; if (st.find(pref) != st.end()) ans = i; } return ans; } */ int ask(int n, string s, char c) { string query = s; for (int i = 1; i <= n; ++i) query += c; return press(query); } string guess_sequence(int n) { string s = ""; if (press("A") == 1) s += "A"; else if (press("B") == 1) s += "B"; else if (press("X") == 1) s += "X"; else s += "Y"; if (n == 1) return s; vector<char> c; for (auto ch : {'A', 'B', 'X', 'Y'}) { if (ch != s[0]) { c.push_back(ch); } } while (s.size() < n) { vector<char> c; for (auto ch : {'A', 'B', 'X', 'Y'}) { if (ch != s[0] && ch != s.back()) { c.push_back(ch); } } int len = s.size(); int x = ask(n, s, c[0]); if (x != len) { for (int j = 1; j <= x - len; ++j) s += c[0]; } else { x = ask(n, s, c[1]); for (int j = 1; j <= x - len; ++j) s += c[1]; } } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...