제출 #704801

#제출 시각아이디문제언어결과실행 시간메모리
704801ngano_upat_naCombo (IOI18_combo)C++17
0 / 100
1 ms208 KiB
#include "bits/stdc++.h"
#include "combo.h"
using namespace std;

string guess_sequence(int N) {
    string ans;
    char start = 'Y';
    
    int a = press("AB");
    if (a == 1) start = 'B';
    if (a == 2) start = 'A';
    
    a = press("X");
    if (a == 1) start = 'X';
    
    if (start == 'A') {
        ans = "A";
        
        for (int i=1; i<N-1; i++) {
            string A = ans + "B";
            string B = ans + "XB";
            string C = ans + "XY";
            string D = ans + "XX";
            
            A = A + B + C + D;
            a = press(A);
            
            if (a == i) {
                ans = ans + "Y";
            }   
            if (a == i+1) {
                ans = ans + "B";
            }   
            if (a == i+2) {
                ans = ans + "X";
            }   
        }   
        string X = ans + "X";
        string Y = ans + "Y";
        string add = X + Y;
        a = press(add);
        
        if (a == N) {
            a = press(X);
            if (a == N) {
                ans = X;
            }   
            else {
                ans = Y;
            }   
        }   
        else {
            ans = ans + "B";
        }   
    } 

    if (start == 'B') {
        ans = "B";
        
        for (int i=1; i<N-1; i++) {
            string A = ans + "A";
            string B = ans + "XA";
            string C = ans + "XY";
            string D = ans + "XX";
            
            A = A + B + C + D;
            a = press(A);
            
            if (a == i) {
                ans = ans + "Y";
            }   
            if (a == i+1) {
                ans = ans + "A";
            }   
            if (a == i+2) {
                ans = ans + "X";
            }   
        }   
        string X = ans + "X";
        string Y = ans + "Y";
        string add = X + Y;
        a = press(add);
        
        if (a == N) {
            a = press(X);
            if (a == N) {
                ans = X;
            }   
            else {
                ans = Y;
            }   
        }   
        else {
            ans = ans + "A";
        }   
    } 
    
    
    if (start == 'X') {
        ans = "X";
        
        for (int i=1; i<N-1; i++) {
            string A = ans + "B";
            string B = ans + "AB";
            string C = ans + "AY";
            string D = ans + "AA";
            
            A = A + B + C + D;
            a = press(A);
            
            if (a == i) {
                ans = ans + "Y";
            }   
            if (a == i+1) {
                ans = ans + "B";
            }   
            if (a == i+2) {
                ans = ans + "A";
            }   
        }   
        string X = ans + "A";
        string Y = ans + "Y";
        string add = X + Y;
        a = press(add);
        
        if (a == N) {
            a = press(X);
            if (a == N) {
                ans = X;
            }   
            else {
                ans = Y;
            }   
        }   
        else {
            ans = ans + "B";
        }   
    } 
    
    
    if (start == 'Y') {
        ans = "Y";
        
        for (int i=1; i<N-1; i++) {
            string A = ans + "B";
            string B = ans + "XB";
            string C = ans + "XA";
            string D = ans + "XX";
            
            A = A + B + C + D;
            a = press(A);
            
            if (a == i) {
                ans = ans + "A";
            }   
            if (a == i+1) {
                ans = ans + "B";
            }   
            if (a == i+2) {
                ans = ans + "X";
            }   
        }   
        string X = ans + "X";
        string Y = ans + "A";
        string add = X + Y;
        a = press(add);
        
        if (a == N) {
            a = press(X);
            if (a == N) {
                ans = X;
            }   
            else {
                ans = Y;
            }   
        }   
        else {
            ans = ans + "B";
        }   
    } 
    
    return ans;
}   
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...