Submission #349656

#TimeUsernameProblemLanguageResultExecution timeMemory
349656spike1236Combo (IOI18_combo)C++14
100 / 100
39 ms572 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; #define pb push_back #define mp make_pair #define f first #define s second #define ll long long #define ld long double #define all(_v) _v.begin(), _v.end() #define sz(_v) (int)_v.size() #define pii pair <int, int> #define pll pair <ll, ll> #define veci vector <int> #define vecll vector <ll> bool check(char x) { string s = ""; s += x; int cnt = press(s); if(cnt > 1 || !cnt) return 0; return 1; } string guess_sequence(int n) { string cur = ""; set <char> st; st.insert('A'); st.insert('B'); st.insert('X'); st.insert('Y'); if(press("AB")) { if(press("B")) cur = "B", st.erase('B'); else cur = "A", st.erase('A'); } else if(press("X")) cur = "X", st.erase('X'); else cur = "Y", st.erase('Y'); auto it = st.begin(); char a1, a2, a3; a1 = *it; ++it; a2 = *it; ++it; a3 = *it; for(int i = 1; i < n; ++i) { if(i == n - 1) { if(press(cur + a1) == n) cur += a1; else if(press(cur + a2) == n) cur += a2; else cur += a3; } else { int res = press(cur + a1 + cur + a2 + a1 + cur + a2 + a2 + cur + a2 + a3); if(res == i) cur += a3; else if(res == i + 1) cur += a1; else if(res == i + 2) cur += a2; } } return cur; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...