제출 #303925

#제출 시각아이디문제언어결과실행 시간메모리
303925GilgameshCombo (IOI18_combo)C++17
5 / 100
1 ms200 KiB
#include "combo.h"
using namespace std;
#include <string>
#include <vector>
#include <set>

string guess_sequence(int N) {
    string ans = "";
    set<string> strs = {"A", "B", "X", "Y"};
    int ab = press("AB");
    if(ab >= 1){
        int a = press("A");
        if(a == 1){
            ans = "A";
        }
        else ans = "B";
    }
    else{
        int x = press("X");
        if(x == 1){
            ans = "X";
        }
        else ans = "Y";
    }
    strs.erase(ans);
    vector<string> left;
    for(string s : strs){
        left.emplace_back(s);
    }
    string first = ans;
    for(int i = 1; i < N - 1; ++i){
        int cur = press(ans + left[1] + ans + left[2] + left[0] + ans + left[2] + left[1] + ans + left[2] + left[2]);
        if(cur == 1){
            ans += left[0];
        }
        else if(cur == 2){
            ans += left[1];
        }
        else ans += left[2];
    }
    ab = press(ans + "A" + ans + "B");
    if(ab >= N){
        int a = press(ans + "A");
        if(a >= N){
            ans += "A";
        }
        else ans += "B";
    }
    else{
        int x = press(ans + "X");
        if(x >= N){
            ans += "X";
        }
        else ans += "Y";
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...