Submission #835175

#TimeUsernameProblemLanguageResultExecution timeMemory
835175JoksimKaktusCombo (IOI18_combo)C++17
5 / 100
1 ms260 KiB
#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <cmath>
#include <queue>
#include <map>
#include <algorithm>
#include <iomanip>
#include <set>
#include <cassert>
#include <cstdio>
#include <string>
#include "combo.h"
 
using namespace std;
 
string guess_sequence(int N){
    string s = "";
    vector <string> s0(4);
    s0[0] = "A";s0[1] = "B";s0[2] = "X";s0[3] = "Y";
    vector <string> v(3);
    for(int i = 0;i < 3;i++){
        if(press(s+s0[i]) == 1){
            s += s0[i];
            int ind = 0;
            for(int j = 0;j < 4;j++){
                if(j == i){
                    continue;
                }
                v[ind] = s0[j];
                ind++;
            }
            break;
        }
    }
    if(s == ""){
        s += s0[3];
        v[0] = "A";
        v[1] = "B";
        v[2] = "X";
    }
    int lenght = 1;
    while(lenght < N-1){
        string check =s+v[0]+s+v[1]+v[0]+s+v[1]+v[1]+s+v[1]+v[2];
        int k = press(check);
        if(k == lenght){
            s += v[2];
            lenght++;
        }else if(k == lenght + 1){
            s += v[0];
            lenght++;
        }else{
            s += v[1];
            lenght++;
        }
    }
    bool found = false;
    for(int i = 0;i < 2;i++){
        if(press(s+v[i]) == N){
            s += v[i];
            found = true;
            break;
        }
    }
    if(!found){
        s += v[2];
    }
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...