Submission #1322322

#TimeUsernameProblemLanguageResultExecution timeMemory
1322322ceshCombo (IOI18_combo)C++20
5 / 100
0 ms400 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

string guess_sequence(int n) {
    vector<vector<int>> is(n, vector<int>(4));
    string f = "AX";
    int c = press(f);
    string ans;
    vector<char> g;
    if (c >= 1) {
        f = "A";
        c = press(f);
        if (c >= 1) {
            for (int i = 1; i < n; i++) is[i][0] = 1;
            ans.push_back('A');
            g.push_back('X');
            g.push_back('B');
            g.push_back('Y');
        } else {
            for (int i = 1; i < n; i++) is[i][1] = 1;
            ans.push_back('X');
            g.push_back('A');
            g.push_back('B');
            g.push_back('Y');
        }
    } else {
        f = "B";
        c = press(f);
        if (c >= 1) {
            for (int i = 1; i < n; i++) is[i][0] = 1;
            ans.push_back('B');
            g.push_back('A');
            g.push_back('X');
            g.push_back('Y');
        } else {
            for (int i = 1; i < n; i++) is[i][1] = 1;
            ans.push_back('Y');
            g.push_back('A');
            g.push_back('X');
            g.push_back('B');
        }
    }
    for (int i = 1; i < n - 1; i++) {
        string f = ans + g[0] + ans + g[1] + g[0] + ans + g[1] + g[1] + ans + g[1] + g[2];
        c = press(f);
        if (c >= ans.size() + 2) ans.push_back(g[1]);
        else if (c >= ans.size() + 1) ans.push_back(g[0]);
        else ans.push_back(g[2]);
    }
    c = press(ans + g[0]);
    if (c >= ans.size() + 1) ans.push_back(g[0]);
    else {
        c = press(ans + g[1]);
        if (c >= ans.size() + 1) ans.push_back(g[1]);
        else ans.push_back(g[2]);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...