제출 #1331636

#제출 시각아이디문제언어결과실행 시간메모리
1331636TroySer콤보 (IOI18_combo)C++17
100 / 100
8 ms484 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

string guess_sequence(int N) {

    string res = "";
    if (press("AB") >= 1) {
        if (press("A") == 1) {
            res += "A";
        } else {
            res += "B";
        }
    } else {
        if (press("X") == 1) {
            res += "X";
        } else {
            res += "Y";
        }
    }
    
    string notFirst;
    for (ll i = 0; i < 4; i++) {
        if ("ABXY"[i] == res[0]) continue;
        notFirst.push_back("ABXY"[i]);
    }

    if (N == 1) {
        return res;
    }

    for (ll i = 1; i < N - 1; i++) {
        ll coins = press(res + notFirst[0] + res + notFirst[1] + notFirst[0] + res + notFirst[1] + notFirst[1] + res + notFirst[1] + notFirst[2]);
        if (coins == res.size()) { // res + notFirst[2]
            res.push_back(notFirst[2]);
        } else if (coins == res.size() + 1) { // res + notFirst[0]
            res.push_back(notFirst[0]);
        } else { // res + notFirst[1]
            res.push_back(notFirst[1]);
        }
    }

    if (press(res + "A" + res + "B") == N) {
        if (press(res + "A") == N) {
            res += "A";
        } else {
            res += "B";
        }
    } else {
        if (press(res + "X") == N) {
            res += "X";
        } else {
            res += "Y";
        }
    }

    return res;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...