Submission #1319966

#TimeUsernameProblemLanguageResultExecution timeMemory
1319966ThanhsCombo (IOI18_combo)C++20
100 / 100
9 ms488 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

#define name "TENBAI"
#define fi first
#define se second
#define endl '\n'
#define setmin(x, y) x = min((x), (y))
#define setmax(x, y) x = max((x), (y))
#define sqr(x) ((x) * (x))
#define all(x) x.begin(), x.end()

mt19937 hdp(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);}

string s;

string guess_sequence(int N)
{
    s = "ABXY";
    char f;
    f = (press("AB") ? (press("A") ? 'A' : 'B') : (press("X") ? 'X' : 'Y'));
    s.erase(find(all(s), f));
    string s1, s2;
    s1 = f + string(N, s[0]), s2 = f + string(N, s[1]);
    string res(1, f);
    if (N == 1)
      return res;
    while (res.size() + 1 < N)
    {
      int t = press(res + s[0] + res + s[1] + s[0] + res + s[1] + s[1] + res + s[1] + s[2]);
      if (t == res.size())
        res += s[2];
      else if (t == res.size() + 1)
        res += s[0];
      else
        res += s[1];
    }
    if (press(res + s[0]) == N)
      return res + s[0];
    else if (press(res + s[1]) == N)
      return res + s[1];
    return res + s[2];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...