| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1217199 | evatea | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB | 
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
string guess_sequence(int N) {
  string p = "";
  int i;
  vector<char> letters = {'A', 'B', 'X', 'Y'};
  p = string(1, letters[0]) + letters[1];
  int coins = press(p);
  if (coins == 1 || coins == 2) {
    p = string(1, letters[0]);
    coins = press(p);
    if (coins == 1) {
      i = 0;
    }
    else {
      i = 1;
    }
    }
  else {
    p = string(1, letters[2]);
    coins = press(p);
    if (coins == 1) {
      i = 2;
    }
    else {
      i = 3;
    }
  }
  
  string S = string(1, letters[i]);
  if (N == 1) {
    return S;
  }
  string Try = "";
  int before = 1;
  letters.erase(letters.begin() + i);
  for (int k = 0; k < N-2; k++) {
    Try = "";
    Try += S;
    Try += letters[0];
    Try += letters[0];
    Try += S;
    Try += letters[0];
    Try += letters[1];
    Try += S;
    Try += letters[0];
    Try += letters[2];
    Try += S;
    Try += letters[1];
      
    coins = press(Try);
    if (coins - before == 2) {
      S += letters[0];
    }
    else if (coins - before == 1) {
      S += letters[1];
    }
    else if (coins - before == 0) {
      S += letters[2];
    }
    before += 1;
  }
  Try = "";
  Try += S;
  Try += letters[0];
  Try += S;
  Try += letters[1];
  coins = press(Try);
  if (coins == N) {
    Try = "";
    Try += S;
    Try += letters[0];
    coins = press(Try);
    if (coins == N) {
      S += letters[0];
    }
    else {
      S += letters[1];
    }
  }
  else {
    S += letters[2];
  }
  
  return S;
}
