Submission #851468

#TimeUsernameProblemLanguageResultExecution timeMemory
851468_uros9Combo (IOI18_combo)C++17
5 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;

string za_prvo(string tr){
    if(press("AB")>0){
        if(press("A")>0)
            return "A";
        return "B";
    }
    if(press("X")>0)
        return "X";
    return "Y";
}
string za_poslednje(string tr){
    vector<string> moguci(0);
    if(tr[0]!='A')moguci.push_back("A");
    if(tr[0]!='B')moguci.push_back("B");
    if(tr[0]!='X')moguci.push_back("X");
    if(tr[0]!='Y')moguci.push_back("Y");
    if(press(tr+moguci[0]+tr+moguci[1])>(int)(tr.size())){
        if(press(tr+moguci[0])>(int)(tr.size()))
            return moguci[0];
        return moguci[1];
    }
    return moguci[2];
}
string classic(string tr){
    vector<string> moguci(0);
    if(tr[0]!='A')moguci.push_back("A");
    if(tr[0]!='B')moguci.push_back("B");
    if(tr[0]!='X')moguci.push_back("X");
    if(tr[0]!='Y')moguci.push_back("Y");
    int napredak=press(tr+moguci[0]+tr+moguci[1]+moguci[0]+tr+moguci[1]+moguci[1]+tr+moguci[1]+moguci[2])-(int)(tr.size());
    if(napredak==1)
        return moguci[0];
    if(napredak==2)
        return moguci[1];
    return moguci[2];
}
string guess_sequence(int N){
    string rez="";
    rez+=za_prvo(rez);
    for(int i=1; i<N-1; i++)
        rez+=classic(rez);
    rez+=za_poslednje(rez);
    return rez;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...