제출 #1191537

#제출 시각아이디문제언어결과실행 시간메모리
1191537vidux콤보 (IOI18_combo)C++17
100 / 100
7 ms484 KiB
#include <bits/stdc++.h> using namespace std; // #define LOCAL typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> pii; #ifdef LOCAL int press(string p) { cout << p << ": "; int x; cin >> x; return x; } #else #include "combo.h" #endif string guess_sequence(int n) { string a; string all = "ABXY"; string cur = "ABXY"; { // Find first int ab = press("AB"); if (ab) { int x = press(string(1, 'A')); if (x) a = 'A', cur = "BXY"; else a = 'B', cur = "AXY"; } else { int x = press(string(1, 'X')); if (x) a = 'X', cur = "ABY"; else a = 'Y', cur = "ABX"; } } if (n == 1) return a; { // Find middle for (int i = 1; i < n-1; i++) { string guess = a+cur[0] + a+cur[1]+cur[0] + a+cur[1]+cur[1] + a+cur[1]+cur[2]; int score = press(guess); if (score == i+1) a += cur[0]; if (score == i+2) a += cur[1]; if (score == i+0) a += cur[2]; } } { // Find last if (press(a + cur[0]) == n) a += cur[0]; else if (press(a + cur[1]) == n) a += cur[1]; else a += cur[2]; } return a; } #ifdef LOCAL int main() { int n; cin >> n; cout << guess_sequence(n) << endl; return 0; } #endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...