제출 #936948

#제출 시각아이디문제언어결과실행 시간메모리
936948MuntherCarrot콤보 (IOI18_combo)C++14
0 / 100
1 ms596 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

// int press(string s)

string guess_sequence(int N){
    srand(time(0));
    string ans;
    int x = rand() % 4;
    if(x == 1){
        ans = "A";
        while((int)ans.size() < N - 1){
            string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XY";
            // cout << f << endl;
            int res = press(f);
            if(res == (int)ans.size()){
                ans += "Y";
            }
            else if(res == (int)ans.size() + 1){
                ans += "B";
            }
            else{
                ans += "X";
            }
        }
        if(press(ans + "X") == N) ans += "X";
        else if(press(ans + "Y") == N) ans += "Y";
        else ans += "B";
    }
    else if(x == 2){
        cout << "HERE" << endl;
        ans = "B";
        while((int)ans.size() < N - 1){
            string f = ans + "A" + ans + "XA" + ans + "XX" + ans + "XY";
            int res = press(f);
            if(res == (int)ans.size()){
                ans += "Y";
            }
            else if(res == (int)ans.size() + 1){
                ans += "A";
            }
            else{
                ans += "X";
            }
        }
        // cout << ans << endl;
        if(press(ans + "X") == N) ans += "X";
        else if(press(ans + "Y") == N) ans += "Y";
        else ans += "A";
    }
    else if(x == 3){
        ans = "X";
        while((int)ans.size() < N - 1){
            string f = ans + "B" + ans + "AB" + ans + "AA" + ans + "AY";
            int res = press(f);
            if(res == (int)ans.size()){
                ans += "Y";
            }
            else if(res == (int)ans.size() + 1){
                ans += "B";
            }
            else{
                ans += "A";
            }
        }
        if(press(ans + "A") == N) ans += "A";
        else if(press(ans + "Y") == N) ans += "Y";
        else ans += "B";
    }
    else{
        ans = "Y";
        while((int)ans.size() < N - 1){
            string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XA";
            int res = press(f);
            if(res == (int)ans.size()){
                ans += "A";
            }
            else if(res == (int)ans.size() + 1){
                ans += "B";
            }
            else{
                ans += "X";
            }
        }
        if(press(ans + "X") == N) ans += "X";
        else if(press(ans + "A") == N) ans += "A";
        else ans += "B";
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...