Submission #1338285

#TimeUsernameProblemLanguageResultExecution timeMemory
1338285kutomei3Combo (IOI18_combo)C++20
0 / 100
0 ms344 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

string guess_sequence(int n) {
    string ans;
    string s1;
    for (int i = 0; i < 2 * n; i++) s1 += 'A';
    for (int i = 0; i < 2 * n; i++) s1 += 'B';

    int sc1 = press(s1);
    char c1;
    if (sc1 >= 1) {
        for (int i = 0; i < 4 * n; i++) s1[i] = 'A';
        int sc2 = press(s1);
        if (sc2 >= 1) ans += 'A', c1 = 'A';
        else ans += 'B', c1 = 'B';
    } else {
        for (int i = 0; i < 4 * n; i++) s1[i] = 'X';
        int sc2 = press(s1);
        if (sc2 >= 1) ans += 'X', c1 = 'X';
        else ans += 'Y', c1 = 'Y';
    }

    vector<char> cu;
    if (c1 != 'A') cu.push_back('A');
    if (c1 != 'B') cu.push_back('B');
    if (c1 != 'X') cu.push_back('X');
    if (c1 != 'Y') cu.push_back('Y');

    for (int i = 1; i < n - 1; i++) {
        string sas;
        sas += ans;
        sas += cu[0], sas += cu[0];
        sas += ans;
        sas += cu[0], sas += cu[1];
        sas += ans;
        sas += cu[0], sas += cu[2];
        sas += ans;
        sas += cu[1];
        int sc2 = press(sas) - i;
        if (sc2 == 2) ans += cu[0];
        else if (sc2 == 1) ans += cu[1];
        else ans += cu[2];
    }

    string sl;
    sl += ans;
    sl += cu[0];
    sl += ans;
    sl += cu[1];

    int sc = press(sl);
    if (sc == n) {
        string lp;
        lp += ans;
        if (press(lp) == n) ans += cu[0];
        else ans += cu[1];
    } else ans += cu[2];

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