Submission #232763

#TimeUsernameProblemLanguageResultExecution timeMemory
232763jam_xd_Combo (IOI18_combo)C++17
0 / 100
21 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";
    }
  } else if(press("XY") > 0) {
 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 = cad[0];
    else
      if(atinados >= encontrados + 1)
       respuesta = respuesta + cad[1];
    else
      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...