Submission #1216500

#TimeUsernameProblemLanguageResultExecution timeMemory
1216500Vale_sCombo (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
string guess_sequence(int N){
    string s;
    if (press("AB")>0){
        if(press("A")==1) s="A";
        else s="B";
    }
    else{
        if(press("X")==1) s="X";
        else s="Y";
    }
    vector<string> op;
    if(s=="A") op={"B","XB","XX","XY"};
    else if(s=="B") op={"A","XA","XX","XY"};
    else if(s=="X") op={"A","BA","BB","BY"};
    else if(s=="Y") op={"A","BA","BB","BX"};
    for(int i=1;i<N-1;i++){
        int cc=press(s+op[0]+s+op[1]+s+op[2]+s+op[3]);
        if (s[0]=='A'){
            if (cc==i) s+='Y';
            else if(cc==i+1) s+='B';
            else if(cc==i+2) s+='X';
        }
        if (s[0]=='B'){
            if (cc==i) s+='Y';
            else if(cc==i+1) s+='A';
            else if(cc==i+2) s+='X';
        }
        if (s[0]=='X'){
            if (cc==i) s+='Y';
            else if(cc==i+1) s+='A';
            else if(cc==i+2) s+='B';
        }
        if (s[0]=='Y'){
            if (cc==i) s+='X';
            else if(cc==i+1) s+='A';
            else if(cc==i+2) s+='B';
        }
    }
    if(N>1){
        if(press(s+"A"+s+"B")==N){
            if(press(s+"A")==N) s+="A";
            else s+="B";
        }
        else{
            if(press(s+"X")==N) s+="X";
            else s+="Y";
        }
    }
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...