Submission #1178708

#TimeUsernameProblemLanguageResultExecution timeMemory
1178708shirokito콤보 (IOI18_combo)C++20
97 / 100
9 ms524 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
using ll = long long;
#define el '\n'

string guess_sequence(int N) {
    vector<char> lst_c = { 'A', 'B', 'X', 'Y' };
    string cur = "";

    if (press(cur + "AB") >= cur.size() + 1) {
        if (press(cur + "A") >= cur.size() + 1) cur += "A";
        else cur += "B";
    }
    else {
        if (press(cur + "X") >= cur.size() + 1) cur += "X";
        else cur += "Y";
    }

    lst_c.erase(find(lst_c.begin(), lst_c.end(), cur[0]));

    while ((int)cur.size() <= N - 2) {
        string tmp = "";
        tmp += cur + lst_c[0];
        tmp += cur + lst_c[1] + lst_c[0];
        tmp += cur + lst_c[1] + lst_c[1];
        tmp += cur + lst_c[1] + lst_c[2];
        int cnt = press(tmp), sz = cur.size();
        if (cnt == sz + 1) {
            cur += lst_c[0];
        }
        else if (cnt == sz + 2) {
            cur += lst_c[1];
        }
        else {
            cur += lst_c[2];
        }
        // cout << cur << el;
    }

    while ((int)cur.size() < N) {
        for (char c: lst_c) {
            if (press(cur + c) == (int)cur.size() + 1) {
                cur += c;
                break;
            }
        }
    }
    
    return cur;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...