Submission #1159608

#TimeUsernameProblemLanguageResultExecution timeMemory
1159608trvhungCombo (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; const char ch[4] = {'A', 'B', 'X', 'Y'}; // int press(string p) { // cout << "ASK " << p << endl; // int res; cin >> res; // return res; // } char getFirst(string s) { char bck = s.back(); s.pop_back(); return press(s) == 1 ? s[0] : bck; } string guess_sequence(int N) { char first = press("AB") == 0 ? getFirst("XY") : getFirst("AB"); int idFirst; for (int i = 0; i < 4; ++i) if (ch[i] == first) idFirst = i; vector<char> remain; for (int i = 0; i < 4; ++i) if (i != idFirst) remain.push_back(ch[i]); string s = ""; s += first; if (N == 1) return s; for (int i = 2; i < N; ++i) { string p = s + remain[0] + s + remain[1] + remain[0] + s + remain[1] + remain[1] + s + remain[1] + remain[2]; int ask = press(p); if (ask == i) s += remain[0]; else if (ask == i + 1) s += remain[1]; else s += remain[2]; } string p = s + 'A' + s + 'B'; if (press(p) == N) { if (press(s + 'A') == N) s += 'A'; else s += 'B'; } else { if (press(s + 'X') == N) s += 'X'; else s += 'Y'; } return s; } // int main() { // int n; // cin >> n; // cout << guess_sequence(n); // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...