Submission #1345680

#TimeUsernameProblemLanguageResultExecution timeMemory
1345680xorshiftCombo (IOI18_combo)C++20
100 / 100
5 ms476 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int press(string p);

string guess_sequence(int n) {
    char fc;
    {
        int c = press("AB");
        if (c) {
            int d = press("A");
            if (d) fc = 'A';
            else fc = 'B';
        } else {
            int d = press("X");
            if (d) fc = 'X';
            else fc = 'Y';
        }
    }
    string res; res.reserve(n);
    res += fc;
    vector<char> rm = {'A', 'B', 'X', 'Y'};
    erase(rm, fc);
    while ((int)res.length() < n-1) {
        int c = press(res+rm[1] + res+rm[0]+rm[0] + res+rm[0]+rm[1] + res+rm[0]+rm[2]);
        if (c == (int)res.length()) res += rm[2];
        if (c == (int)res.length()+1) res += rm[1];
        if (c == (int)res.length()+2) res += rm[0];
    }
    if (n > 1) {
        int c = press(res+rm[0]);
        if (c == (int)res.length()+1) res += rm[0];
        else {
            int d = press(res+rm[1]);
            if (d == (int)res.length()+1) res += rm[1];
            else res += rm[2];
        }
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...