제출 #1222155

#제출 시각아이디문제언어결과실행 시간메모리
1222155diana콤보 (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; const int C = 4; set<string> c = {"A", "X", "B", "Y"}; string X = "X", A = "A", B = "B", Y = "Y"; string ans = ""; void guess_first() { if(press(A+X) >= 1) { if(press(A)) ans = A; else ans = X; } else { if(press(Y)) ans = Y; else ans = B; } c.erase(ans); } void guess_next(int k) { string a[3]; int i = 0; for(auto x: c) a[i++] = x; string p = ans + a[0] + a[0] + ans + a[0] + a[1] + ans + a[0] + a[2] + ans + a[1]; int coins = press(p); if(coins == k+2) ans += a[0]; else if(coins == k+1) ans += a[1]; else ans += a[2]; } void guess_last(int n) { string a[3]; int i = 0; for(auto x: c) a[i++] = x; if(press(ans + a[0]) == n) ans += a[0]; else if(press(ans + a[1]) == n) ans += a[1]; else ans += a[2]; } string guess_sequence(int n) { guess_first(); for(int i=1; i<n-1; i++) guess_next(i); if(n > 1) guess_last(n); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...