제출 #1168495

#제출 시각아이디문제언어결과실행 시간메모리
1168495HoriaHaivas콤보 (IOI18_combo)C++20
5 / 100
0 ms408 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

string guess_sequence(int N)
{
    int n,len,i;
    n=N;
    string options;
    string base;
    base="";
    if (press("A")==1)
    {
        base+="A";
        options="BXY";
    }
    else if (press("B")==1)
    {
        base+="B";
        options="AXY";
    }
    else if (press("X")==1)
    {
        base+="X";
        options="ABY";
    }
    else
    {
        base+="Y";
        options="ABX";
    }
    len=1;
    if (base=="A")
    {
        for (i=2; i<n; i++)
        {
            string ask;
            int rez;
            ask=base+"B"+base+"XX"+base+"XB"+base+"XY";
            rez=press(ask);
            if (rez-len==1)
                base+="B";
            if (rez-len==2)
                base+="X";
            if (rez-len==0)
                base+="Y";
            len++;
        }
        if (press(base+"B")==len+1)
            base+="B";
        else if (press(base+"X")==len+1)
            base+="X";
        else
            base+="Y";
    }
    if (base=="B")
    {
        for (i=2; i<n; i++)
        {
            string ask;
            int rez;
            ask=base+"A"+base+"XX"+base+"XA"+base+"XY";
            rez=press(ask);
            if (rez-len==1)
                base+="A";
            if (rez-len==2)
                base+="X";
            if (rez-len==0)
                base+="Y";
            len++;
        }
        if (press(base+"A")==len+1)
            base+="A";
        else if (press(base+"X")==len+1)
            base+="X";
        else
            base+="Y";
    }
    if (base=="X")
    {
        for (i=2; i<n; i++)
        {
            string ask;
            int rez;
            ask=base+"A"+base+"BB"+base+"BA"+base+"BY";
            rez=press(ask);
            if (rez-len==1)
                base+="A";
            if (rez-len==2)
                base+="B";
            if (rez-len==0)
                base+="Y";
            len++;
        }
        if (press(base+"A")==len+1)
            base+="A";
        else if (press(base+"B")==len+1)
            base+="B";
        else
            base+="Y";
    }
    if (base=="Y")
    {
        for (i=2; i<n; i++)
        {
            string ask;
            int rez;
            ask=base+"A"+base+"BB"+base+"BA"+base+"BX";
            rez=press(ask);
            if (rez-len==1)
                base+="A";
            if (rez-len==2)
                base+="B";
            if (rez-len==0)
                base+="X";
            len++;
        }
        if (press(base+"A")==len+1)
            base+="A";
        else if (press(base+"B")==len+1)
            base+="B";
        else
            base+="X";
    }
    return base;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...