제출 #1339986

#제출 시각아이디문제언어결과실행 시간메모리
1339986Yusif_Nazarli콤보 (IOI18_combo)C++20
5 / 100
0 ms412 KiB
#include "combo.h"
#include "bits/stdc++.h"

using namespace std;
int i = 0;
string guess_sequence(int n){
  string ans = "";
  int coins = 0;
  char c; // ilk herf
  int k = press("AB");
  if(k == 2){
    ans += "AB"; i = 2; 
    c = 'A';
  } else if(k == 0){
    k = press("X");
    if(k){
      ans += "X"; c = 'X';
      i++;
    } else{
      ans += "Y"; c = 'Y';
      i++;
    }
  } else{
    k = press("A");
    if(k){
      ans += "A"; c = 'A';
      i++;
    } else{
      ans += "B"; c = 'B';
      i++;
    }
  }
  coins = ans.size();
  string AB , A , X , Y;
  if(c == 'A'){
    A = "B";
    X = "X";
    Y = "Y";
    AB = A + X;
  } else if(c == 'B'){
      A = "A";
      X = "X";
      Y = "Y";
      AB = A + X;
  } else if(c == 'X'){
      A = "A";
      X = "B";
      Y = "Y";
      AB = A + X;
  } else if(c == 'Y'){
      A = "A";
      X = "B";
      Y = "X";
      AB = A + X;
  }
  for(int i = ans.size(); i < n - 1; i++){
    k = press(ans + A + ans + X + A + ans + X + X + ans + X + Y);
    if(k - coins == 1){
      ans += A;
      coins = k;
    } else if(k - coins == 2){
      ans += X;
      coins++;
    } else{
      ans += Y;
      k++; coins = k;
    }
  }
  k = press(ans + A);
  if(k == coins + 1){
    ans += A;
  } else{
    k = press(ans + X);
    if(k == coins + 1){
      ans += X;
    } else{
      ans += Y;
    }
  }
  return ans;
}

/*
ABBBXY

ABXBXXBXY

ABB
ABXB
ABXX
ABXY

*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...