Submission #1261940

#TimeUsernameProblemLanguageResultExecution timeMemory
1261940sokratisiCombo (IOI18_combo)C++20
100 / 100
8 ms548 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

int coins;
string use;

char find_first() {
    use = "AB";
    coins = press(use);
    if (coins) {
        use = "A";
        coins = press(use);
        if (coins) return 'A';
        else return 'B';  
    }
    use = "X";
    coins = press(use);
    if (coins) return 'X';
    else return 'Y';
}

string guess_sequence(int n) {
    char c = find_first();
    set<char> s = {'A', 'B', 'X', 'Y'};
    s.erase(c);
    vector<char> chrs;
    for (auto u: s) chrs.push_back(u);

    string p = "";
    if (n == 1) return (p + c);
    p += c;
    for (int i = 2; i <= n - 1; i++) {
        use = p + chrs[0] + chrs[0] + p + chrs[0] + chrs[1] + p + chrs[0] + chrs[2] + p + chrs[1];
        int coins = press(use);
        if (coins == i + 1) p += chrs[0];
        else if (coins == i) p += chrs[1];
        else p += chrs[2];
    }
    use = p + chrs[0];
    coins = press(use);
    if (coins == n) return use;
    use = p + chrs[1];
    coins = press(use);
    if (coins == n) return use;
    return (p + chrs[2]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...