Submission #1296806

#TimeUsernameProblemLanguageResultExecution timeMemory
1296806ayazCombo (IOI18_combo)C++20
100 / 100
10 ms512 KiB
#include "combo.h"
#include "bits/stdc++.h"
#include <cassert>
using namespace std;
#define isz(x) (int)x.size()

string guess_sequence(int n) {
  string res;
  vector<char> t(3);
  if (press("AB") >= 1) {
    if (press("A") == 1) {
      res = res + 'A';
      t = {'B', 'X', 'Y'};
    } else {
      res = res + 'B';
      t = {'A', 'X', 'Y'};
    }
  } else {
    if (press("X") == 1) {
      res = res + 'X';
      t = {'B', 'A', 'Y'};
    } else {
      res = res + 'Y';
      t = {'A', 'X', 'B'};
    }
  }
  if (n == 1) return res;
  int cnt = 1;
  for (int i = 1; i <= n-2; i++) {
    string s = res + t[0] + t[0] + res + t[0] + t[1] + res + t[0] + t[2] + res + t[1];
    int x = press(s);
    int prev = cnt;
    if (x == isz(res) + 2) {
      res = res + t[0];
      cnt++;
    } else if (x == isz(res) + 1) {
      res = res + t[1];
      cnt++;
    } else if (x == isz(res)) {
      res = res + t[2];
      cnt++;
    }
  }
  if (press(res + t[0]) == isz(res) + 1) {
    res += t[0];
  } else if (press(res + t[1]) == isz(res) + 1) {
    res += t[1];
  } else {
    res += t[2];
  }
  return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...