Submission #1248085

#TimeUsernameProblemLanguageResultExecution timeMemory
1248085exoworldgd콤보 (IOI18_combo)C++20
0 / 100
6 ms512 KiB
#pragma GCC optimize("O3")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#include <bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int press(string s);
const char c[] = {'A','B','X','Y'};
int ask(string s) {return press(s);}
int ask1(string s) {
    int n = s.length();
    return ask(s+c[0]) == n+1 ? 0 : ask(s+c[1]) == n+1 ? 1 : ask(s+c[2]) == n+1 ? 2 : 3;
}
string guess_sequence(int n) {
    string s = "";
    if (n == 1) return string(1, c[ask1(s)]);
    int idx[4], id = ask1(s);
    iota(idx,idx+4,0), s += c[id], swap(idx[id],idx[3]);
    for (int i = 1; i < n-1; i++) {
        string temp = s + c[idx[0]] + s + c[idx[0]] + c[idx[1]] + s + c[idx[0]] + c[idx[2]];
        int len = ask(temp);
        s += len == i+2 ? c[idx[1]] : len == i+1 ? c[idx[0]] : c[idx[2]];
    }
    return n > 1 ? s + (ask(s + c[idx[0]]) == n ? c[idx[0]] : ask(s + c[idx[1]]) == n ? c[idx[1]] : c[idx[2]]) : s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...