제출 #1240661

#제출 시각아이디문제언어결과실행 시간메모리
1240661vivkostov콤보 (IOI18_combo)C++20
100 / 100
7 ms548 KiB
//#pragma once
//#include "grader.cpp"
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
int n;
char f,a[5];
string s,h;
void get_first()
{
    h="AB";
    int g=press(h);
    if(g>0)
    {
        h="A";
        g=press(h);
        if(g)
        {
            f='A';
            a[0]='B';
            a[1]='X';
            a[2]='Y';
        }
        else
        {
            f='B';
            a[0]='A';
            a[1]='X';
            a[2]='Y';
        }
    }
    else
    {
        h="X";
        g=press(h);
        if(g)
        {
            f='X';
            a[0]='A';
            a[1]='B';
            a[2]='Y';
        }
        else
        {
            f='Y';
            a[0]='A';
            a[1]='B';
            a[2]='X';
        }
    }
}
void last()
{
    int g;
    h=s+a[0]+s+a[1];
    g=press(h);
    if(g==n-1)
    {
        s+=a[2];
        return;
    }
    h=s+a[0];
    g=press(h);
    if(g==n-1)
    {
        s+=a[1];
        return;
    }
    s+=a[0];
}
void resh()
{
    s+=f;
    int pos=1,g;
    while(pos<n-1)
    {
        h=s+a[1]+s+a[2]+a[0]+s+a[2]+a[1]+s+a[2]+a[2];
        g=press(h);
        if(g==pos)s+=a[0];
        if(g==pos+1)s+=a[1];
        if(g==pos+2)s+=a[2];
        pos++;
    }
    if(n!=1)last();
}
string guess_sequence(int N)
{
    n=N;
    get_first();
    resh();
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...