제출 #89977

#제출 시각아이디문제언어결과실행 시간메모리
89977Retro3014Combo (IOI18_combo)C++17
5 / 100
2 ms236 KiB
#include "combo.h"
#include <string>
#include <algorithm>

using namespace std;

int f;

int t(int x){
    return x%4;
}

string base = "ABXY";
string str;
string q;

string guess_sequence(int N) {
    if(press("AB")!=0){
        if(press("A")!=0){
            f=0; str+="A";
        }else{
            f=1; str+="B";
        }
    }else{
        if(press("X")!=0){
            f=2; str+="X";
        }else{
            f=3; str+="Y";
        }
    }
    for(int i=1; i<N-1; i++){
        q.clear();
        q+=(str+base[t(f+1)]);
        q+=(str+base[t(f+2)]+base[t(f+1)]);
        q+=(str+base[t(f+2)]+base[t(f+2)]);
        q+=(str+base[t(f+2)]+base[t(f+3)]);
        int query = press(q);
        if(query == i){
            str+=base[t(f+3)];
        }else if(query == i+1){
            str+=base[t(f+1)];
        }else{
            str+=base[t(f+2)];
        }
    }
    if(press(str+base[t(f+1)])==N){
        return str+base[t(f+1)];
    }else if(press(str+base[t(f+2)])==N){
        return str+base[t(f+2)];
    }return str+base[t(f+3)];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...