Submission #101462

#TimeUsernameProblemLanguageResultExecution timeMemory
101462daniel920712Combo (IOI18_combo)C++14
0 / 100
1 ms248 KiB
#include <string>
#include <stdio.h>
#include "combo.h"
using namespace std;
string all;
string aaa;
bool have[4]={0};
bool can[5][2005]={0};
char change[4]={'A','B','X','Y'};
string guess_sequence(int N)
{
    int con=0,i,j,k,t,x=0,a,b;
    for(i=0;i<N;i++)
    {
        //printf("%d\n",i);
        t=0;
        con=0;
        for(j=0;j<4;j++)
        {
            if(i==1&&change[j]==all[0]) for(k=i;k<N;k++) can[j][k]=1;
            t+=(1-can[j][i]);
        }
        for(j=0;j<4;j++)
        {
            if(can[j][i]) continue;
            if(con+1==t) all+=change[j];
            else
            {
                a=-1;
                b=-1;
                for(k=0;k<4;k++)
                {
                    if(can[k][i+1]) continue;
                    if(a==-1) a=k;
                    else if(b==-1) b=k;
                }
                //printf("%d %d\n",a,b);
                aaa=all;
                aaa+=change[j];
                aaa+=change[a];
                aaa+=all;
                aaa+=change[j];
                aaa+=change[b];
                x=press(aaa);
                //printf("%d\n",x);
                if(x==i+1)
                {
                    all+=change[j];
                    if(i!=N-1) for(k=b+1;k<4;k++) if(!can[k][i]) all+=change[k];
                    i++;
                    break;
                }
                else if(x==i+2)
                {
                    all+=change[j];
                    for(k=b+1;k<4;k++) if(!can[k][i]) can[k][i+1]=1;
                    break;
                }
            }

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