제출 #523462

#제출 시각아이디문제언어결과실행 시간메모리
523462dron_rp콤보 (IOI18_combo)C++14
97 / 100
31 ms700 KiB
#include "combo.h"
#include <set>
#include <iostream>

using namespace std;

string guess_sequence(int N) {
    string S = "";
    set<char> a = {'A', 'B', 'X', 'Y'};
    string p = "";
    if (press("A") == 1){
        a.erase('A');
        S += 'A';
    } else if (press("B") == 1){
        a.erase('B');
        S += 'B';
    } else if (press("X") == 1){
        a.erase('X');
        S += 'X';
    } else{
        a.erase('Y');
        S += 'Y';
    }
    char v[3];
    int idx = 0;
    if (a.count('A')) v[idx++] = 'A';
    if (a.count('B')) v[idx++] = 'B';
    if (a.count('X')) v[idx++] = 'X';
    if (a.count('Y')) v[idx++] = 'Y';
    while ((int) S.size() < N-1){
        p = S + v[0] + S + v[1]+v[0] + S + v[1]+v[1] + S + v[1]+v[2];
        int coins = press(p);
        if (coins == (int)S.size()+2){
            S += v[1];
        } else if (coins == (int)S.size()+1){
            S += v[0];
        } else {
            S += v[2];
        }
    }
    if (N == 1) return S;
    if (press(S+v[0]) == N){
        S += v[0];
    } else if (press(S+v[1]) == N){
        S += v[1];
    } else{
        S += v[2];
    }
    return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...