Submission #704809

#TimeUsernameProblemLanguageResultExecution timeMemory
704809ngano_upat_naCombo (IOI18_combo)C++17
0 / 100
0 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 = 'A';
        
        a = press("B");
        if (a == 1) start = 'B';
    }   
    else {
        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";
        }   
        return ans;
    } 

    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";
        }   
        return ans;
    } 
    
    
    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";
        }   
        return ans;
    } 
    
    
    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;
    } 
}   

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:190:1: warning: control reaches end of non-void function [-Wreturn-type]
  190 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...