제출 #1339887

#제출 시각아이디문제언어결과실행 시간메모리
1339887chry콤보 (IOI18_combo)C++20
0 / 100
1 ms420 KiB
#include <bits/stdc++.h>
using namespace std;

int press(string p);

string guess_sequence(int N) {
    string S = "";

    // 找第一個字
    if (press("AB")) {
        if (press("A")) S = "A";
        else S = "B";
    } else {
        if (press("X")) S = "X";
        else S = "Y";
    }

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

    while ((int)S.size() < N) {
        vector<char> cand;
        for (char c : all) {
            if (c != S[0]) cand.push_back(c);
        }

        if ((int)S.size() == N - 1) {
            // 最後一個
            if (press(S + cand[0])) S += cand[0];
            else S += cand[1];
            break;
        }

        string query = S + cand[0] + S + cand[1] + S + cand[2];
        int res = press(query);

        if (res == (int)S.size() + 1) {
            S += cand[0];
        } else if (res == (int)S.size() + 2) {
            S += cand[1];
        } else {
            S += cand[2];
        }
    }

    return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...