Submission #1218405

#TimeUsernameProblemLanguageResultExecution timeMemory
1218405tapilyocaCombo (IOI18_combo)C++20
5 / 100
0 ms408 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using str = string;
template<typename T>
using vec = vector<T>;
#define pb push_back

std::string guess_sequence(int N) {
    str S = "";
    ll len = 1;
    ll check = press("A");
    if(check == 1) {
        S = "A";
        while(S.length() < N-1) {
            str thing = S + "B" + S + "XB" + S + "XX" + S + "XY";
            cerr << thing.length() << endl;
            cerr << S << endl;
            ll lol = press(thing);
            if(lol == len+1) S.pb('B');
            else if(lol == len + 2) S.pb('X');
            else S.pb('Y');
        }
        str thing = S + "B" + S + "X";
        ll lol = press(thing);
        if(lol == N) {
            check = press(S + "B");
            if(check == N) return S+"B";
            else return S+"X";
        }
        return S+"Y";
    }
    check = press("B");
    if(check == 1) {
        S = "B";
        while(S.length() != N-1) {
            ll lol = press(S + "A" + S + "XA" + S + "XX" + S + "XY");
            if(lol == len+1) S.pb('A');
            else if(lol == len + 2) S.pb('X');
            else S.pb('Y');
        }
        str thing = S + "A" + S + "X";
        ll lol = press(thing);
        if(lol == N) {
            check = press(S + "A");
            if(check == N) return S+"A";
            else return S+"X";
        }
        return S+"Y";
    }
    check = press("X");
    if(check) {
        S = "X";
        while(S.length() != N-1) {
            ll lol = press(S + "A" + S + "BA" + S + "BB" + S + "BY");
            if(lol == len+1) S.pb('A');
            else if(lol == len + 2) S.pb('B');
            else S.pb('Y');
        }
        str thing = S + "B" + S + "A";
        ll lol = press(thing);
        if(lol == N) {
            check = press(S + "B");
            if(check == N) return S+"B";
            else return S+"A";
        }
        return S+"Y";

    }
    S = "Y";
    while(S.length() != N-1) {
            ll lol = press(S + "A" + S + "BA" + S + "BX" + S + "BB");
            if(lol == len+1) S.pb('A');
            else if(lol == len + 2) S.pb('B');
            else S.pb('X');
    }
        str thing = S + "B" + S + "X";
        ll lol = press(thing);
        if(lol == N) {
            check = press(S + "B");
            if(check == N) return S+"B";
            else return S+"X";
        }
        return S+"A";

    return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...