제출 #1221687

#제출 시각아이디문제언어결과실행 시간메모리
1221687laurraCombo (IOI18_combo)C++20
100 / 100
9 ms572 KiB
#include "combo.h"
#include <iostream>

using namespace std;

string guess_sequence(int N)
{
    int i,coins,j,cnt;
    string litere="YBXA",S,prefix;
    char prima,aux[3];
    cnt=0;
    S=litere[0];
    S=S+litere[1];
    coins=press(S);
    if(coins)
    {
        S=litere[0];
        coins=press(S);
        if(coins)
        {
            i=0;
            prima=litere[i];
            for(j=0;j<4;j++)
                if(j!=i)
                    aux[cnt]=litere[j],cnt++;
        }
        else
        {
            i=1;
            prima=litere[i];
            for(j=0;j<4;j++)
                if(j!=i)
                    aux[cnt]=litere[j],cnt++;
        }
    }
    else
    {
        S=litere[2];
        coins=press(S);
        if(coins)
        {
            i=2;
            prima=litere[i];
            for(j=0;j<4;j++)
                if(j!=i)
                    aux[cnt]=litere[j],cnt++;
        }
        else
        {
            i=3;
            prima=litere[i];
            for(j=0;j<4;j++)
                if(j!=i)
                    aux[cnt]=litere[j],cnt++;
        }
    }
    ///cout<<prima;
    prefix=prima;
    if(N==1)
        return prefix;
    for(i=1;i<N-1;i++)
    {
        S="";
        S=S+prefix+aux[0];
        for(j=0;j<3;j++)
        {
            S=S+prefix;
            S=S+aux[1]+aux[j];
        }
        coins=press(S);
        if(coins==prefix.length())
            prefix=prefix+aux[2];
        else if(coins==prefix.length()+1)
            prefix=prefix+aux[0];
        else
            prefix=prefix+aux[1];

    }
    S=prefix+litere[0];
    S=S+prefix+litere[1];
    coins=press(S);
    if(coins==N)
    {
        S=prefix+litere[0];
        coins=press(S);
        if(coins==N)
            return prefix+litere[0];
        else
            return prefix+litere[1];
    }
    else
    {
        S=prefix+litere[2];
        coins=press(S);
        if(coins==N)
            return prefix+litere[2];
        else
            return prefix+litere[3];
    }
    return prefix;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...