제출 #594445

#제출 시각아이디문제언어결과실행 시간메모리
594445yutabiCombo (IOI18_combo)C++14
5 / 100
1 ms208 KiB
#include "combo.h"





std::string guess_sequence(int N)
{
    std::string start;

    std::string buttons[3];

    buttons[0]="A";
    buttons[1]="B";
    buttons[2]="X";

    std::string ans="";

    std::string query="";

    if(press("AB")>0)
    {
        if(press("A")>0)
        {
            start="A";
        }

        else
        {
            start="B";
        }
    }

    else
    {
        if(press("X")>0)
        {
            start="X";
        }

        else
        {
            start="Y";
        }
    }

    if("A"==start)
    {
        buttons[0]="B";
        buttons[1]="X";
        buttons[2]="Y";
    }

    if("B"==start)
    {
        buttons[0]="A";
        buttons[1]="X";
        buttons[2]="Y";
    }

    if("X"==start)
    {
        buttons[0]="A";
        buttons[1]="B";
        buttons[2]="Y";
    }

    if("Y"==start)
    {
        buttons[0]="A";
        buttons[1]="B";
        buttons[2]="X";
    }

    //cout << start << ' ' << buttons[0] << ' ' << buttons[1] << ' ' << buttons[2] << endl;

    ans=start;

    for(int i=1;i<N-1;i++)
    {
        query=ans;
        query+=buttons[0];
        query+=buttons[0];
        query+=ans;
        query+=buttons[0];
        query+=buttons[1];
        query+=ans;
        query+=buttons[0];
        query+=buttons[2];
        query+=ans;
        query+=buttons[1];

        //cout << query << endl;

        int res=press(query);

        if(res==i)
        {
            ans+=buttons[2];
        }

        if(res==i+1)
        {
            ans+=buttons[1];
        }

        if(res==i+2)
        {
            ans+=buttons[0];
        }
    }

    if(press(ans+buttons[0])==N)
    {
        ans+=buttons[0];
    }

    else if(press(ans+buttons[1])==N)
    {
        ans+=buttons[1];
    }

    else
    {
        ans+=buttons[2];
    }

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