Submission #1343124

#TimeUsernameProblemLanguageResultExecution timeMemory
1343124ris0828Combo (IOI18_combo)C++20
100 / 100
9 ms484 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

std::string guess_sequence(int N) {
  string p;
  char rem[3];
  if(press("AB")){
    if(press("A")){
      p="A";
      rem[0]='B';
      rem[1]='X';
      rem[2]='Y';
    }else{
      p="B";
      rem[0]='A';
      rem[1]='X';
      rem[2]='Y';
    }
  }else{
    if(press("X")){
      p="X";
      rem[0]='A';
      rem[1]='B';
      rem[2]='Y';
    }else{
      p="Y";
      rem[0]='A';
      rem[1]='B';
      rem[2]='X';
    }
  }

  for(int i=2; i<N; i++){
    int coins=press(p+rem[0]+rem[0]+p+rem[0]+rem[1]+p+rem[0]+rem[2]+p+rem[1]);
    if(coins-p.length()==2){
      p+=rem[0];
    }else if(coins-p.length()==1){
      p+=rem[1];
    }else{
      p+=rem[2];
    }
  }
  if(N>1){
    if(press(p+rem[0]+p+rem[1])==N){
      if(press(p+rem[0])==N){
        return p+rem[0];
      }else{
        return p+rem[1];
      }
    }else{
      return(p+rem[2]);
    }
  }else{
    return p;
  }

  // std::string p = "";
  // for (int i = 0; i < 4 * N; ++i) {
  //   p += 'A';
  // }
  // int coins = press(p);
  // cout << coins;
  // std::string S = "";
  // for (int i = 0; i < N; ++i) {
  //   S += 'A';
  // }
  // return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...