제출 #1337108

#제출 시각아이디문제언어결과실행 시간메모리
1337108yus1f_m콤보 (IOI18_combo)C++20
100 / 100
7 ms484 KiB
//pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
string guess_sequence(int n)
{
    int num,num1,num2;
    string cc="",ans;
    if(n==1)
    {
        if(press("A")==1)
        {
            ans='A';
        }
        else if(press("B")==1)
        {
            ans='B';
        }
        else if(press("X")==1)
        {
            ans='X';
        }
        else
        {
            ans='Y';
        }
    }
    else
    {
        num1=press("AB"),num2=press("AX");
        if(num1==2)
        {
            ans="AB";
        }
        else if(num2==2)
        {
            ans="AX";
        }
        else if(num1==1 && num2==1)
        {
            ans="A";
        }
        else if(num1==1 && num2==0)
        {
            ans="B";
        }
        else if(num1==0 && num2==1)
        {
            ans="X";
        } 
        else
        {
            ans="Y";
        }
        if(ans[0]=='A')
        {
            cc+='B',cc+='X',cc+='Y';
        }
        else if(ans[0]=='B')
        {
            cc+='A',cc+='X',cc+='Y';
        }
        else if(ans[0]=='X')
        {
            cc+='A',cc+='B',cc+='Y';
        }
        else
        {
            cc+='A',cc+='B',cc+='X';
        }
        while(ans.size()<n-1)
        {
            num=press(ans+cc[0]+ans+cc[1]+cc[0]+ans+cc[1]+cc[1]+ans+cc[1]+cc[2]);
            if(num==ans.size()+1)
            {
                ans+=cc[0];
            }
            else if(num==ans.size()+2)
            {
                ans+=cc[1];
            }
            else
            {
                ans+=cc[2];
            }
        }
        if(ans.size()!=n)
        {
            if(press(ans+cc[0])==n)
            {
                ans+=cc[0];
            }
            else if(press(ans+cc[1])==n)
            {
                ans+=cc[1];
            }
            else
            {
                ans+=cc[2];
            }
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...