제출 #554891

#제출 시각아이디문제언어결과실행 시간메모리
554891d4xn콤보 (IOI18_combo)C++17
0 / 100
0 ms296 KiB
#include "combo.h"

#pragma GCC optimize ("Ofast")
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

string guess_sequence(int N) {
  string p;

  string dict1 = "ABXY";

  int x = press("AB");
  if (x >= 1) {
    if (press("A")) {
      p.pb('A');
    }
    else {
      p.pb('B');
    }
  }
  else {
    if (press("X")) {
      p.pb('X');
    }
    else {
      p.pb('Y');
    }
  }

  string dict2;
  for (char &c : dict1) {
    if (c == p[0]) continue;
    dict2.pb(c);
  }

  x = 1;
  for (int i = 1; i < N-1; i++) {
    string s1 = p;
    s1.pb(dict2[0]);

    string s2 = p;
    s2.pb(dict2[1]);
    s2.pb(dict2[0]);

    string s3 = p;
    s3.pb(dict2[1]);
    s3.pb(dict2[1]);

    string s4 = p;
    s4.pb(dict2[1]);
    s4.pb(dict2[2]);

    int y = press(s1 + s2 + s3 + s4);
    if (y == x+1) {
      p.pb(dict2[0]);
    }
    else if (y == x+2) {
      p.pb(dict2[1]);
    }
    else {
      p.pb(dict2[2]);
    }

    x++;
  }

  for (int i = 0; i < 2; i++) {
    char c = dict2[i];
    p.pb(c);
    if (press(p) == N) break;
    p.pop_back();
  }

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