제출 #256342

#제출 시각아이디문제언어결과실행 시간메모리
256342SpeedOfMagic콤보 (IOI18_combo)C++17
100 / 100
36 ms548 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; #define sz(a) (int) a.size() string guess_sequence(int N) { string ans = ""; string l1 = "A", l2 = "B", l3 = "X"; int c = press("AB"); if (c) { c = press("A"); if (c) { ans += "A"; l1 = "Y"; } else { ans += "B"; l2 = "Y"; } } else { c = press("X"); if (c) { ans += "X"; l3 = "Y"; } else ans += "Y"; } while (sz(ans) < N) { if (sz(ans) + 1 == N) { string v = ans + l1 + ans + l2; //cout << v << endl; c = press(v) - sz(ans); if (c) { v = ans + l1; //cout << v << endl; c = press(v) - sz(ans); if (c) ans += l1; else ans += l2; } else ans += l3; } else { string v = ans + l1 + l1 + ans + l1 + l2 + ans + l2 + l1; //cout << v << endl; c = press(v) - sz(ans); if (c == 0) ans += l3; else if (c == 1) { string v = ans + l2 + l2; //cout << v << endl; c = press(v) - sz(ans); if (c == 0) ans += l1 + l3; else if (c == 1) ans += l2 + l3; else ans += l2 + l2; } else { string v = ans + l1 + l1; //cout << v << endl; c = press(v) - sz(ans); if (c == 0) ans += l2 + l1; else if (c == 1) ans += l1 + l2; else ans += l1 + l1; } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...