제출 #203650

#제출 시각아이디문제언어결과실행 시간메모리
203650Tadiorn콤보 (IOI18_combo)C++14
5 / 100
3 ms200 KiB
#include <bits/stdc++.h>
#include "combo.h"


using namespace std;

/*int press(string lol)
{
    cout << lol << ":\n";
    int lollol;
    cin >> lollol;
    return lollol;
}*/

string guess_sequence(int N)
{
    if(N == 1)
    {
        string f;
        int te = press("AB");
        if(te >= 1)
        {
            te = press("A");
            if(te == 1)
            {
                return "A";
            }
            else
            {
                return "B";
            }
        }
        else
        {
            te = press("X");
            if(te == 1)
            {
                return "X";
            }
            else
            {
                return "Y";
            }
        }
    }
    else
    {
        string f;
        int te = press("AB");
        if(te >= 1)
        {
            te = press("A");
            if(te == 1)
            {
                f = "A";
            }
            else
            {
                f = "B";
            }
        }
        else
        {
            te = press("X");
            if(te == 1)
            {
                f = "X";
            }
            else
            {
                f = "Y";
            }
        }

        if(f == "A")
        {
            for(int i = 1; i < N - 1; i++)
            {
                int t = press(f + "X"+ f + "YB" + f + "YX" + f + "YY");
                if(t == (int)f.size())
                {
                    f += "B";
                }
                else if(t == (int)f.size() + 1)
                {
                    f += "X";
                }
                else //if(t == s.size() + 2)
                {
                    f += "Y";
                }
            }
        }
        else if(f == "B")
        {
            int t = press(f + "X"+ f + "YA" + f + "YX" + f + "YY");
            if(t == (int)f.size())
            {
                f += "A";
            }
            else if(t == (int)f.size() + 1)
            {
                f += "X";
            }
            else //if(t == s.size() + 2)
            {
                f += "Y";
            }
        }
        else if(f == "X")
        {
            int t = press(f + "A"+ f + "BA" + f + "BB" + f + "BY");
            if(t == (int)f.size())
            {
                f += "Y";
            }
            else if(t == (int)f.size() + 1)
            {
                f += "A";
            }
            else //if(t == s.size() + 2)
            {
                f += "B";
            }
        }
        else //if(f == "Y")
        {
            int t = press(f + "A"+ f + "BA" + f + "BB" + f + "BX");
            if(t == (int)f.size())
            {
                f += "X";
            }
            else if(t == (int)f.size() + 1)
            {
                f += "A";
            }
            else //if(t == s.size() + 2)
            {
                f += "B";
            }
        }

        te = press(f + "A" + f + "B");
        if(te >= N)
        {
            te = press(f + "A");
            if(te == N)
            {
                f += "A";
            }
            else
            {
                f += "B";
            }
        }
        else
        {
            te = press(f + "X");
            if(te == N)
            {
                f += "X";
            }
            else
            {
                f += "Y";
            }
        }

        return f;
    }

}

/*int main()
{
    int n;
    cin >> n;
    string rez = guess_sequence(n);
    cout << rez << "\n";
    return 0;
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...