Submission #1157798

#TimeUsernameProblemLanguageResultExecution timeMemory
1157798alexddCombo (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
std::string guess_sequence(int N)
{
    char primu;
    if(press("AB")==0)
    {
        if(press("X"))
            primu = 'X';
        else
            primu = 'Y';
    }
    else
    {
        if(press("A"))
            primu = 'A';
        else
            primu = 'B';
    }
    vector<char> ch = {'A','B','X','Y'};
    for(int i=0;i<4;i++)
    {
        if(ch[i]==primu)
        {
            ch.erase(ch.begin()+i);
            break;
        }
    }
    string s;
    s.push_back(primu);
    if(N==1)
        return s;
    for(int i=1;i<N-1;i++)
    {
        string p = "";
        p += s;p.push_back(ch[0]);
        for(int j=0;j<3;j++)
        {
            p += s;
            p.push_back(ch[1]);
            p.push_back(ch[j]);
        }
        int x = press(p);
        if(x == (int)s.size())
        {
            s.push_back(ch[2]);
        }
        else if(x == (int)s.size() + 1)
        {
            s.push_back(ch[0]);
        }
        else
        {
            s.push_back(ch[1]);
        }
    }
    assert((int)s.size() == N-1);

    if(press(s+ch[0])==N)
        return s + ch[0];
    else if(press(s+ch[1])==N)
        return s + ch[1];
    else
        return s + ch[2];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...