제출 #1336815

#제출 시각아이디문제언어결과실행 시간메모리
1336815mrcat2011콤보 (IOI18_combo)C++20
5 / 100
1 ms412 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(add1) >= 1) {
    if (press("AX") >= 1) {
      s += 'A';
    } else {
      s += 'B';
    }
  } else {
    if (press("XA") >= 1) {
      s += 'X';
    } else {
      s += 'Y';
    }
  }

  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;

    if (press(S) == (s.size() + 1)) {
      s += c1;
    } else if (press(S) == (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...