제출 #1336821

#제출 시각아이디문제언어결과실행 시간메모리
1336821mrcat2011콤보 (IOI18_combo)C++20
100 / 100
10 ms604 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;


typedef int64_t ll;

std::string guess_sequence(int N) {
  string s = "";


  string add1 = "AB";

  if (press("AB") >= 1) {
      if (press("A") == 1) s = "A";
      else s = "B";
  } else {
      if (press("X") == 1) s = "X";
      else s = "Y";
  }

  if (N == 1) return s;

  char c1, c2, c3;

  if (s == "A") {
    c1 = 'B', c2 = 'X', c3 = 'Y';
  } else if (s == "B") {
    c1 = 'A', c2 = 'X', c3 = 'Y';
  } else if (s == "X") {
    c1 = 'B', c2 = 'A', c3 = 'Y';
  } else {
    c1 = 'B', c2 = 'X', c3 = 'A';
  }

  for (ll i = 1; i < N - 1; ++i) {
    string s2 = s + c1;
    string s3 = s + c2 + c1;
    string s4 = s + c2 + c2;
    string s5 = s + c2 + c3;
    string S = s2 + s3 + s4 + s5;

    ll coins = press(S);
    if (coins == (s.size() + 1)) {
      s += c1;
    } else if (coins == (s.size() + 2)) {
      s += c2;
    } else {
      s += c3;
    }
  }

  if (press(s + c1) == s.size() + 1) {
    s += c1;
  } else if (press(s + c2) == s.size() + 1) {
    s += c2;
  } else {
    s += c3;
  }
  
  //cout << s << endl;

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