Submission #752550

#TimeUsernameProblemLanguageResultExecution timeMemory
752550vjudge1Combo (IOI18_combo)C++17
0 / 100
1 ms208 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
/*int press(string s)
{
    cout<<s<<endl;
    int x;
    cin>>x;
    return x;
}*/
string guess_sequence(int n)
{
    string ans;
    int x = press("AB");
    if(x == 0){
        int se = press("X");
        if(se == 1) ans += "X";
        else ans += "Y";
    }
    else{
        int se = press("A");
        if(se == 1) ans += "A";
        else ans += "B";
    }
    vector<string> c;
    if(ans != "A") c.push_back("A");
    if(ans != "B") c.push_back("B");
    if(ans != "X") c.push_back("X");
    if(ans != "Y") c.push_back("Y");
    int i = 1;
    while(i < n){
        if(i == n-1){
            int fi = press(ans+"AB")-ans.size();
            if(fi == 0){
                int se = press(ans+"X")-ans.size();
                if(se == 1) ans += "X";
                else ans += "Y";
            }
            else{
                int se = press(ans+"A")-ans.size();
                if(se == 1) ans += "A";
                else ans += "B";
            }
            break;
        }
        int a = press(ans + c[0] + c[0] + ans + c[0] + c[1] + ans + c[1] + c[0])-ans.size();
        if(a == 0){
            ans += c[2];
        }
        else if(a == 1){
            int b = press(ans + c[1] + c[1])-i;
            if(b == 0) ans += c[0] + c[2];
            else if(b == 1) ans += c[1] + c[2];
            else ans += c[1] + c[1];
            i++;
        }
        else{
            int b = press(ans + c[0] + c[0])-i;
            if(b == 0) ans += c[1] + c[0];
            else if(b == 1) ans += c[0] + c[1];
            else ans += c[0] + c[0];
            i++;
        }
        i++;
    }
    return ans;
}
/*int main()
{
    int n;
    cin>>n;
    cout<<guess_sequence(n);
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...