Submission #1307241

#TimeUsernameProblemLanguageResultExecution timeMemory
1307241eyadoozCombo (IOI18_combo)C++20
100 / 100
8 ms476 KiB
#include "combo.h"

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define endl '\n'

// int press(string ans) 
// {
//     cout << ans << endl << flush;
//     int x;
//     cin >> x;
//     return x;
// }
string guess_sequence(int N)
{
    string ans="";
    string c="ABXY";
    if(press("AB"))
    {
        if(press("A")) 
        {
                        c.erase(c.find('A'), 1);

            ans='A';
        }
        else
        {
                        c.erase(c.find('B'), 1);

            ans='B';
        }
    }
    else
    {
        if(press("X")) 
        {
                        c.erase(c.find('X'), 1);

            ans='X';
        }
        else
        {
                        c.erase(c.find('Y'), 1);

            ans='Y';
        }
    }
    if(N==1) return ans;
    for(int i = 1;i < N-1;i++) 
    {
        string ask=ans+c[0]+c[0]+ans+c[0]+c[1]+ans+c[0]+c[2]+ans+c[1];
        int len=press(ask);
        if(len==i) ans+=c[2];
        else if(len==i+1)ans+=c[1];
        else ans+=c[0];
    }    

    if(press(ans+"A"+ans+"B")==N)
    {
        if(press(ans+"A")==N) 
        {

            ans+='A';
        }
        else
        {
            
            ans+='B';
        }
    }
    else
    {
        if(press(ans+"X")==N) 
        {
            ans+='X';
        }
        else
        {
            ans+='Y';
        }
    }
    return ans;
}
// int main()
// {
//     cout << guess_sequence(3);
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...