Submission #1210181

#TimeUsernameProblemLanguageResultExecution timeMemory
1210181repsak콤보 (IOI18_combo)C++20
5 / 100
0 ms408 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

string guess_sequence(int N) {
    string p = ""; //<-- questions
    string s = ""; //<-- correct
    
    // Get first letter;
    char first;
    
    if(press("AB")){
        if(press("A")) first = 'A';
        else first = 'B';
    }else{
        if(press("X")) first = 'X';
        else first = 'Y';
    }
    
    s += first;

    // Get middle letters
    vector<char> letters;
    for(char c : {'A', 'B', 'X', 'Y'}){
        if(c != first) letters.push_back(c);
    }

    for(int i = 1; i < N - 1; i++){
        p = "";
        for(int j = 0; j < letters.size() - 1; j++){
            char newChar = letters[j];
            
            if(j == 0){
                p += s;
                p += newChar;
            }

            if(j == 1){
                for(auto c : letters){
                    p += s;
                    p += newChar;
                    p += c;
                }
            }
        }

        const int coins = press(p);
        if(coins == s.size()){
            s += letters[2];
        }else if(coins == s.size() + 1){
            s += letters[0];
        }else if(coins == s.size() + 2){
            s += letters[1];
        }
    }

    //Get last letter
    char last;
    if(press(s + "A" + s + "B") == 1 + s.size()){
        if(press(s + "A") == 1 + s.size()) last = 'A';
        else last = 'B';
    } else{
        if(press(s + "X") == 1 + s.size()) last = 'X';
        else last = 'Y';
    }

    s += last;
    return s;
}

// #include "grader.cpp"
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...