Submission #232792

#TimeUsernameProblemLanguageResultExecution timeMemory
232792jam_xd_Combo (IOI18_combo)C++17
0 / 100
1 ms200 KiB
#include "combo.h"
#include "bits/stdc++.h"
 
using namespace std;
 
string guess_sequence(int N) {
  string cad;// = "ABXY";
  string respuesta = "";
 
 
 
///////////////////////// Encontrar primer caracter.
  /*
  if(press("AB") > 0){
    if(press("A") > 0){
      respuesta = "A";//respuesta = "A";
      cad = "BXY";
    }else{
      respuesta =  "B";//respuesta = "B";
      cad = "AXY";
    }
  }else{
    if(press("XY")>0){
      if(press("X") > 0){
        respuesta = "X";//respuesta = "X";
        cad = "ABY";
      }else{
        respuesta = "Y";
        cad = "ABX";
      }
    }
  }*/
  if(press("AB") > 0) {
 if(press("A") > 0){
   respuesta = "A";
   cad = "BXY";
 } else {
   respuesta = "B";
   cad = "AXY";
    }
  }
 if(press("X") > 0){
   respuesta = "X";
   cad = "ABY";
 } else {
   respuesta = "Y";
   cad = "ABX";
    }
  if(N==1)return respuesta;//por si acaso :v
 
 
 
///////////////////////////////// 
  //Borrar el caracter que no necesito osea el primero de respuesta :P
 
/*for(int i=0;i<3;i++){
  if(cad[i] == respuesta[0]){
    int aux;
    aux = cad[i];
    cad[i] = cad[3];
    cad[3] = aux;
    //cad.pop_back();
    break;
  }
}*/
//////////////////////////////
//Probar xd
int encontrados = 1;
 
while(encontrados < N){
  /////// para encontrar la ultima:
  if(encontrados == N-1){
    if(press(respuesta + cad[0]) == N)return respuesta + cad[0];
    if(press(respuesta + cad[1]) == N)return respuesta + cad[1];
    return respuesta + cad[2];
  }
 
  ///////////////////////////////////
  //generador de prefijos
 
  string elprobador = "";
  
 
  for(int i=0;i<3;i++){
    elprobador = elprobador + respuesta;
    elprobador = elprobador + cad[0];
    elprobador = elprobador + cad[i];
  }
  elprobador = elprobador + respuesta;
  elprobador = elprobador + cad[1];
  elprobador = elprobador + respuesta[0];
  ///////////////////////////////////////
  ///// Pregunto por los prefijos creados y descarto posibilidades.
 
  int atinados = press(elprobador);
 
  if(atinados >= encontrados + 2)
      respuesta = respuesta + cad[0];
    else
      if(atinados >= encontrados + 1)
       respuesta = respuesta + cad[1];
    else
      respuesta = respuesta + cad[2];
    
    encontrados ++; //si o si encontrare almenos uno mas;
  
  ////////////////////
 
 
}
 
  return respuesta;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...