제출 #1185584

#제출 시각아이디문제언어결과실행 시간메모리
1185584eri16Combo (IOI18_combo)C++20
100 / 100
7 ms484 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

string solve(string x, string y, string z, string k, int N) {
    while (k.size() < N - 1) {
        int sz = k.size();
        string temp = k + x + x + k + x + y + k + x + z + k + y;
        int res = press(temp);

        if (res == sz) {
            k += z;
        } else if (res == sz + 1) {
            k += y;
        } else if (res == sz + 2) {
            k += x;
        } else {
            // Defensive exit in case of unexpected press result
            exit(1);
        }
    }
    
    string temp = k + x;
        if (press(temp) == N) {
            return temp;
        }
    temp = k + y;
        if (press(temp) == N) {
            return temp;
        }
    return (k+z);
    return "";
}

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

    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...