Submission #477447

#TimeUsernameProblemLanguageResultExecution timeMemory
477447SlavicGCombo (IOI18_combo)C++17
0 / 100
42 ms544 KiB
#include "combo.h"
#include "bits/stdc++.h"
using namespace std;
 
#define ll long long
 
#define       forn(i,n)              for(int i=0;i<n;i++)
#define          all(v)              v.begin(), v.end()
#define         rall(v)              v.rbegin(),v.rend()
 
#define            pb                push_back
#define          sz(a)               (int)a.size()

string guess_sequence(int n){
    string cur = "";
    vector<char> c;
    c.pb('X');
    c.pb('Y');
    c.pb('A');
    c.pb('B');
    char first = 'A';
    if(press("XY")){
        if(press("X"))first = 'X';
        else first = 'Y';
    }else{
        if(press("A"))first = 'A';
        else first = 'B';
    }
    c.erase(find(all(c), first));
    cur += first;

    for(int i = 1;i < n - 1;++i){
        string qr = cur;
        qr += c[0];
        qr += c[0];
        qr += cur;

        qr += c[0];
        qr += c[1];

        qr += cur;
        qr += c[0];
        qr += c[2];

        qr += cur;
        qr += c[1];

        if(press(qr) == 2){
            cur += c[0];
        }else if(press(qr) == 1){
            cur += c[1];
        }else{
            cur += c[2];
        }
    }

    if(sz(cur) < n){
        if(press(cur + c[0]) == n)cur += c[0];
        else if(press(cur + c[1]) == n)cur += c[1];
        else cur += c[2]; 
    }
    assert(sz(cur) == n);
    return cur;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...