Submission #1147601

#TimeUsernameProblemLanguageResultExecution timeMemory
1147601gulmixCombo (IOI18_combo)C++20
100 / 100
6 ms504 KiB
#include "combo.h"
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
using ll = long long;
#define all(x) x.begin(), x.end()
#define oset tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update>

string guess_sequence(int n){
    string p = "";
    if(press("AB") >= 1)p = (press("A") ? "A" : "B");
    else p = (press("X") ? "X" : "Y");
    vector<char> a = {'A', 'B', 'X', 'Y'};
    a.erase(find(all(a), p[0]));
    while((int)p.size() <= n - 2){
        int q = press(p + a[0] + a[0] + p + a[0] + a[1] + p + a[1] + a[0]);
        if(q == p.size()){
            p.push_back(a[2]);
        }else if(q == p.size() + 1){
            q = press(p + a[1] + a[2]);
            if(q == p.size()) p = p + a[0] + a[2];
            else if(q == p.size() + 1) p = p + a[1] + a[1];
            else p = p + a[1] + a[2];
        }else{
            q = press(p + a[0] + a[1]);
            if(q == p.size())p = p + a[1] + a[0];
            else if(q == p.size() + 1)p = p + a[0] + a[0];
            else p = p + a[0] + a[1];
        }
    }
    while(p.size() != n){
        if(press(p + a[0]) == p.size() + 1)p.push_back(a[0]);
        else if(press(p + a[1]) == p.size() + 1)p.push_back(a[1]);
        else p.push_back(a[2]);
    }
    return p;
}

//int main(){
//    ios::sync_with_stdio(false);
//    cin.tie(0);
//    //ifstream cin("cycle2.in");
//    //ofstream cout("cycle2.out");
//}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...