Submission #869757

#TimeUsernameProblemLanguageResultExecution timeMemory
869757NinedesuCombo (IOI18_combo)C++14
97 / 100
14 ms1764 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;

int st,sti=1;
string t="ABXY";

string guess_sequence(int N) {
  string p = "ABX";
  int c=press(p);
  if(c==3){
    st=0;
    sti=3;
    if(N==3)return p;
  }
  else if(c==2){
    sti=2;
    p="AB";
    c=press(p);
    if(c==2)st=0;
    else{
      st=1;
      p="BX";
    }
    if(N==2)return p;
  }
  else if(c==1){
    p="AB";
    c=press(p);
    if(c==1){
      p="A";
      c=press(p);
      if(c==1)st=0;
      else{
        p="B";
        st=1;
      }
    }
    else{
      p="X";
      st=2;
    }
  }
  else{
    p="Y";
    st=3;
  }
  if(N==1)return p;
  for(int i=sti; i<N-1; i++){
    string q="";
    int x=0;
    if(x==st)x++;
    for(int j=0; j<4; j++){
      if(st==j)continue;
      q+=p+t[x]+t[j];
    }
    x++;
    if(x==st)x++;
    q+=p+t[x];
    x++;
    if(x==st)x++;
    c=press(q);
    if(c==p.size()+2)p+=q[p.size()];
    else if(c==p.size()+1)p+=q[q.size()-1];
    else p+=t[x];
  }
  int cnt=0;
  for(int i=0; i<4; i++){
    if(i==st)continue;
    string q=p+t[i];
    if(cnt==2)return q;
    c=press(q);
    cnt++;
    if(c==N)return q;
  }

  return p;
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:63:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |     if(c==p.size()+2)p+=q[p.size()];
      |        ~^~~~~~~~~~~~
combo.cpp:64:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |     else if(c==p.size()+1)p+=q[q.size()-1];
      |             ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...