제출 #1251312

#제출 시각아이디문제언어결과실행 시간메모리
1251312FernandoJC07콤보 (IOI18_combo)C++20
100 / 100
9 ms600 KiB
#include <bits/stdc++.h>
#include "combo.h"
#define For(i, a, n) for(int i = a; i<n; ++i)
using namespace std;

string guess_sequence(int N){
    string s = "";
    vector<char> v = {'A', 'B', 'X', 'Y'};
    int v1 = press("AB");
    if(!v1){
        int v2 = press("X");
        s += v2 ? 'X' : 'Y';
    } else {
        int v2 = press("A");
        s += v2 ? 'A' : 'B';
    }
    For(i, 0, 4) { if(v[i] == s[0]){ v.erase(v.begin()+i, v.begin()+i+1); break;}}
    For(i, 1, N-1){
        string a1 = s + v[0];
        string a2 = s + v[1];
        string t = a1;
        for(char c: v){
            t += a2 + c;
        }
        int v2 = press(t);
        if(v2 == s.size()) s += v[2];
        else if(v2 == s.size()+2) s += v[1];
        else s += v[0];
    }
    if(N==1) return s;
    string t = s + v[0] + s + v[1];
    int v2 = press(t);
    if(v2==N){
        int v3 = press(s+v[0]);
        if(v3==N) s += v[0];
        else s += v[1];
    }
    else s+=v[2];
    return s;    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...