Submission #1216552

#TimeUsernameProblemLanguageResultExecution timeMemory
1216552adriines06Combo (IOI18_combo)C++20
0 / 100
0 ms408 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;

std::string guess_sequence(int N) {
  string s="";
  vector<string>op;
  if(press("AB")>1) {
    if(press("A")==1){
      s+='A';
      op={"BB","BX","BY","X"};
    }
    else{
      s+='B';
      vector<string>op={"AA","AX","AY","X"};
    }
  }
  else if(press("X")==1){
    s+='X';
    vector<string>op={"BB","BA","BY","A"};
  }
  else{
    s+='Y';
    vector<string>op={"BB","BX","BA","X"};
  }
  
  for (int i = 1; i < N-1; ++i) {
    string ns=s+string(op[0])+s+string(op[1])+s+string(op[2])+s+string(op[3]);
    int c=press(ns);
    int t=s.size();
    if(s[0]=='A'){
      if(c==t) s+='Y';
      else if(c==t+1) s+='X';
      else s+='B';
    }
    else if(s[0]=='B'){
      if(c==t) s+='Y';
      else if(c==t+1) s+='X';
      else s+='A';
    }
    else if(s[0]=='X'){
      if(c==t) s+='Y';
      else if(c==t+1) s+='A';
      else s+='B';
    }
    else{
      if(c==t) s+='A';
      else if(c==t+1) s+='X';
      else s+='B';
    }

  }
  int t=s.size();
  if(press(s+'A'+s+'B')>t){
    if(press(s+'A')) s+='A';
    else s+='B';
  }
  else{
    if(press(s+'X')) s+='X';
    else s+='Y';
  }
  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...