Submission #1174538

#TimeUsernameProblemLanguageResultExecution timeMemory
1174538Seungni콤보 (IOI18_combo)C++20
82 / 100
7 ms520 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

string cand = "ABXY";
string s;

string guess(string prefix)
{    
    string ret = prefix;
    ret += s[0];

    for (int i = 0; i < 3; i++)
    {
        ret += prefix;
        ret += s[1];
        ret += s[i];
    }

    return ret;
}

string guess_sequence(int N)
{
    string S;
    string a = "A", b = "B", x = "X";

    int aa = press(a), bb = press(b), xx = press(x);
    if (aa)
        S = a;
    else if (bb)
        S = b;
    else if (xx)
        S = x;
    else
        S = "Y";

    char c = S[0];
    for (int i = 0; i < 4; i++)
    {
        if (cand[i] != c)
            s += cand[i];
    }

    for(int i = 0; i < N - 3; i++) {
        string now = guess(S);
        int v = press(now) - S.length();
        if(v == 2) S += s[1];
        else if(v == 1) S += s[0];
        else S += s[2];
    }

    for(int i = 0; i < 2; i++) {
        for(int j = 0; j < 3; j++) {
            string now = S + s[j];
            int v = press(now);
            if(v > S.length()) {
                S += s[j];
                break;
            }
        }
    }

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