Submission #1195641

#TimeUsernameProblemLanguageResultExecution timeMemory
1195641Cebrayil09Combo (IOI18_combo)C++20
5 / 100
1065 ms520 KiB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

int press(string s);

string guess_sequence(int n) {
    char hrf[4] = {'A', 'B', 'X', 'Y'};
    char bas = '1';

    for(auto &p : hrf) {
        string s = "";
        s.pb(p);

        if(press(s) == 1) {
            bas = p;
            break;
        }
    }

    string s = "";
    s.pb(bas);

    set<char> pre;
    while(s.size() != n) {
        string sub = s;
        string test = "";

        for(auto &p : hrf) {
            if(p == bas || pre.count(p)) continue;

            map< int , int > m;
            while(test.size() + sub.size() + 1 < 4*n && sub.size() <= n) {
                sub.pb(p);

                m[sub.size()] = test.size();
                test += sub;
            }

            int say = press(test);
            if(say == s.size()) {
                pre.insert(p);
                break;
            }

            s = test.substr(m[say], say);
            pre.clear();
            pre.insert(p);
            break;
        }
    }

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