Submission #911425

#TimeUsernameProblemLanguageResultExecution timeMemory
911425TurcavidCombo (IOI18_combo)C++14
100 / 100
13 ms1792 KiB
#include "combo.h"
#include <vector>
 
using namespace std;


string guess_sequence(int N)
{
    vector<char> v;
    v.push_back('A');
    v.push_back('B');
    v.push_back('X');
    v.push_back('Y');
    int del=3;
    int p0=press("AB"), p1=press("BX");
    if(p0 == 2)
        del=0;
    else if(p1 == 2)
        del=1;
    else if(p0 == 1 && p1 == 1)
        del=1;
    else if(p0 == 1)
        del=0;
    else if(p1 == 1)
        del=2;
    else
        del=3;
    string ans="";
    ans+=v[del];
    v.erase(v.begin()+del);
    if(N == 1)
        return ans;
    for(int i=2; i<=N-1; i++)
    {
        string qr="";
        qr+=(ans+v[1]);
        qr+=(ans+v[2]+v[0]);
        qr+=(ans+v[2]+v[1]);
        qr+=(ans+v[2]+v[2]);
        int val=press(qr);
        if(val == i-1)
            ans+=v[0];
        if(val == i)
            ans+=v[1];
        if(val == i+1)
            ans+=v[2];
    }
    for(int i=0; i<2; i++)
    {
        string qr=ans;
        qr+=v[i];
        if(press(qr) == N)
            return qr;
    }
    ans+=v[2];
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...