제출 #1324262

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

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

  string src;
  if(press("A")) s += "A", src = "ABXY";
  else if(press("X")) s += "X", src = "XABY";
  else if(press("B")) s += "B", src = "BAXY";
  else s += "Y", src = "YABX"; 

  int idx = 1;
  for(int i=0;i<N-2;i++)
  {
    string p = "";
    p += ((s + src[2]) + (s + src[3] + src[1]) + (s + src[3] + src[2]) + (s + src[3] + src[3]));
    // cout << p << '\n';
    int cnt = press(p);
    // cout << cnt << "\n";
    // cout << "idx : " << idx << '\n';
    if(cnt == idx) s += src[1];
    else if(cnt == idx + 1) s += src[2];
    else s += src[3];
    idx++;
  }

  idx++;
  // cout << "idx : " << idx << '\n';
  // cout << s + src[1] + s + src[2] << '\n';
  // cout << s + src[2] + s + src[3] << '\n';

  int len1 = press((s + src[1]) + (s + src[2]));
  int len2 = press((s + src[2]) + (s + src[3]));
  if(len1 == idx && len2 == idx) s += src[2];
  else if(len1 == idx) s += src[1];
  else s += src[3];

  // cout << "len1 : " << len1 << '\n';
  // cout << "len2 : " << len2 << '\n';

  // cout << "final string : " << s << '\n';
  
  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...