Submission #1323982

#TimeUsernameProblemLanguageResultExecution timeMemory
1323982sh_qaxxorov_571Combo (IOI18_combo)C++20
100 / 100
7 ms464 KiB
#include "combo.h"
#include <vector>
#include <string>

using namespace std;

string guess_sequence(int N) {
    string s = "";
    string buttons = "ABXY";
    
    // 1. Birinchi belgini topish (2 ta so'rov)
    if (press("AB")) {
        if (press("A")) s = "A";
        else s = "B";
    } else {
        if (press("X")) s = "X";
        else s = "Y";
    }

    if (N == 1) return s;

    // Qolgan tugmalar ro'yxati
    vector<string> c;
    for (char b : buttons) {
        if (b != s[0]) c.push_back(string(1, b));
    }

    // 2. O'rtadagi belgilarni topish (N-2 ta so'rov)
    for (int i = 2; i < N; ++i) {
        string query = s + c[0] + c[0] + 
                       s + c[0] + c[1] + 
                       s + c[0] + c[2] + 
                       s + c[1];
        int res = press(query);
        if (res == s.length() + 2) s += c[0];
        else if (res == s.length() + 1) s += c[1];
        else s += c[2];
    }

    // 3. Oxirgi belgini topish (2 ta so'rov)
    if (press(s + c[0]) == N) s += c[0];
    else if (press(s + c[1]) == N) s += c[1];
    else s += c[2];

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