제출 #1357109

#제출 시각아이디문제언어결과실행 시간메모리
1357109skuru콤보 (IOI18_combo)C++20
5 / 100
0 ms412 KiB
#include "combo.h"
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

#define all(v) (v).begin(), (v).end()

vector<char> chr = {'A', 'B', 'X', 'Y'};

string guess_sequence(int N) {
    string S;

    if (press("AB") == 0) {
        if (press("X"))
            S.push_back('X');
        else
            S.push_back('Y');
    } else {
        if (press("A"))
            S.push_back('A');
        else
            S.push_back('B');
    }
    chr.erase(remove(all(chr), S[0]), chr.end());

    while ((int)S.size() <= N - 2) {
        string p;

        for (int i = 0; i < 3; i++) {
            p += S;
            p += chr[0];
            p += chr[i];
        }
        p += S;
        p += chr[1];

        int coin = press(p);

        if (coin == S.size() + 2) {
            S.push_back(chr[0]);
        } else if (coin == S.size() + 1) {
            S.push_back(chr[1]);
        } else {
            S.push_back(chr[2]);
        }
    }

    for (int i = 0; i < 2; i++) {
        if (press(S + chr[i]) == N) {
            S.push_back(chr[i]);
            break;
        }
    }
    if (S.size() != N)
        S += chr[2];

    return S;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…