Submission #1333918

#TimeUsernameProblemLanguageResultExecution timeMemory
1333918feyzaCombo (IOI18_combo)C++20
100 / 100
10 ms520 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

vector<string>el;

string guess_sequence(int N)
{
    el.push_back("A");
    el.push_back("B");
    el.push_back("X");
    el.push_back("Y");

    int eridx;
    string s;

    string curr,ask;
    int ret;

    ask=el[0]+el[1];

    if(press(ask)>=1)
    {
        if(press(el[0])==1)
        {
            s=el[0];
            eridx=0;
        }
        else
        {
            s=el[1];
            eridx=1;
        }
    }
    else
    {
        if(press(el[2])==1)
        {
            s=el[2];
            eridx=2;
        }
        else
        {
            s=el[3];
            eridx=3;
        }
    }

    el.erase(el.begin()+eridx);

    while(s.size()!=N)
    {
        if(N-s.size()==1)
        {
            ask=s+el[0];
            ret=press(ask);

            if(ret==N)
            {
                s+=el[0];
                break;
            }

            ask=s+el[1];
            ret=press(ask);

            if(ret==N)
            {
                s+=el[1];
                break;
            }

            s+=el[2];
        }
        else
        {
            ask="";

            curr=s+el[0]+el[0];
            ask+=curr;
            curr=s+el[0]+el[1];
            ask+=curr;
            curr=s+el[0]+el[2];
            ask+=curr;
            curr=s+el[1];
            ask+=curr;

            ret=press(ask);

            if(ret==s.size()+2)
                s+=el[0];
            else if(ret==s.size()+1)
                s+=el[1];
            else
                s+=el[2];
        }
    }

    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...