| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 1284149 | hssaan_arif | 콤보 (IOI18_combo) | C++20 | 0 ms | 0 KiB | 
string guess_sequence(int N) {
    int n = N;
    if (n == 1){
        int p = press("A");
        if (p){
            // cout << "A" << endl;
            return "A";
        }
        p = press("B");
        if (p){
            // cout << "B" << endl;
            return "B";
        }
        p = press("X");
        if (p){
            // cout << "X" << endl;
            return "X";
        }
        
        return "Y";
        
    }
    string s = "AB" ;
    string F = "";
    int p = press(s);
    if (p){
        s = "A";
        p = press(s);
        if (p){
            F = "A";
        }else{
            F = "B";
        }
    }else{
        s = "XYAYBYX";
        p = press(s);
        if (p == 2){
            F = 'Y';
        }else{
            F = 'X';
        }
    }
    vector<string> S;
    if (F != "A"){
        S.pb("A");
    }
    if (F != "B"){
        S.pb("B");
    }
    if (F != "X"){
        S.pb("X");
    }
    if (F != "Y"){
        S.pb("Y");
    }
    string ans = "";
    ans += F;
    for (int i = 1 ; i < n ; i++){
        // cout << ans << " ";
        if (i == n-1){
            string s = "";
            s += ans;
            s += S[0];
            int p = press(s);
            if (p == i+1){
                ans += S[0];
                continue;
            }
            s = "";
            s += ans;
            s += S[1];
            p = press(s);
            if (p == i+1){
                ans += S[1];
                continue;
            }
            ans += S[2];
            continue;
        }
        string s = "";
        s += ans;
        s += S[0];
        s += ans;
        s += S[1];
        s += S[0];
        s += ans;
        s += S[1];
        s += S[1];
        s += ans;
        s += S[1];
        s += S[2];
        // cout << s << endl;
        int p = press(s);
        if (p == i){
            ans += S[2];
        }else if (p == i+1){
            ans += S[0];
        }else{
            ans += S[1];
        }
    }
    return ans;
}
