제출 #645023

#제출 시각아이디문제언어결과실행 시간메모리
645023Nursik콤보 (IOI18_combo)C++14
30 / 100
43 ms572 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
const ll maxn = 2e3 + 1;

int used[maxn][4];
vector<char> v = {'A', 'B', 'X', 'Y'};
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
string guess_sequence(int n) {
    string pref = "";
    int get = press("AB");
    if (get > 0){
        get = press("A");
        if (get == 1){
            pref += "A";
        }
        else{
            pref += "B";
        }
    }
    else{
        get = press("X");
        if (get == 1){
            pref += "X";
        }
        else{
            pref += "Y";
        }
    }
    vector<char> v2;
    for (auto it : v){
        if (it != pref[0]){
            v2.pb(it);
        }
    }
    for (int i = 1; i < n; ++i){
        for (int j = 0; j < 3; ++j){
            int k = rng() % (j + 1);
            swap(v2[j], v2[k]);
        }
        int ans = 2;
        for (int j = 0; j < 2; ++j){
            string npref = pref + v2[j];
            get = press(npref);
            if (get == i + 1){
                ans = j;
                break;
            }
        }
        pref += v2[ans];
    }
    return pref;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...