| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 1242623 | JelaByteEngineer | 콤보 (IOI18_combo) | C++20 | 0 ms | 0 KiB | 
#include <bits/stdc++.h>
#define ll long long
#include "combo.h"
using namespace std;
string guess_sequence (int N)
{
    string s="";
    int res=press("AX");
    if (res==0)
    {
        if (press("B")==1) s+='B';
        else s+='Y';
    }
    else if (res==1)
    {
        if (press("X")==1) s+='X';
        else s+='A';
    }
    else s+='A';
    char c=s[0];
    vector <char> mog(3);
    if (c=='A') mog={'B', 'X', 'Y'};
    else if (c=='B') mog={'A', 'X', 'Y'};
    else if (c=='X') mog={'A', 'B', 'Y'};
    else mog={'A', 'B', 'X'};
    for (int i=1; i<=N; i++)
    {
        if (s.size()==n-1) break;
        string p=(s+mog[1])+(s+mog[2]+mog[1])+(s+mog[2]+mog[0])+(s+mog[2]+mog[2]);
        int res=press(p);
        if (res==s.size()) s+=mog[0];
        else if (res==s.size()+1) s+=mog[1];
        else if (res==s.size()+2) s+=mog[2];
    }
    if (press(s+'X')==s.size())
    {
        if (press(s+'Y')==s.size()) s+='B';
        else s+='Y';
    }
    else s+='X';
    return s;
}
