Submission #143898

#TimeUsernameProblemLanguageResultExecution timeMemory
143898NightlightCombo (IOI18_combo)C++14
100 / 100
71 ms512 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;


string guess_sequence(int N) {
  string res = "";
  vector<string> guess = {"A", "B", "X", "Y"};
  int coins = press("AB");
  if(coins){
    if(press("A"))res += 'A';
    else res += 'B';
  }else{
    if(press("X"))res += 'X';
    else res += 'Y';
  }
  for(int i = 0; i < 4; i++){
    if(res == guess[i])guess.erase(guess.begin() + i);
  }
  if(N > 1){
    for(int i = 1; i < (N-1); i++){
      string temp = res + guess[0];
      for(auto i : guess){
        temp += res + guess[1] + i;
      }
      int respon = press(temp);
      if(respon == res.length()){
        res += guess[2];
      }else if(respon == res.length() + 1){
        res += guess[0];
      }else res += guess[1];
    }
    coins = press(res + guess[0] + res + guess[1]);
    if(coins == res.length() + 1){
      if(press(res + guess[0]) == res.length() + 1)res += guess[0];
      else res += guess[1];
    }else res += guess[2];
//    cout << res << "\n";
  }
  return res;
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:27:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |       if(respon == res.length()){
      |          ~~~~~~~^~~~~~~~~~~~~~~
combo.cpp:29:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |       }else if(respon == res.length() + 1){
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~
combo.cpp:34:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |     if(coins == res.length() + 1){
      |        ~~~~~~^~~~~~~~~~~~~~~~~~~
combo.cpp:35:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |       if(press(res + guess[0]) == res.length() + 1)res += guess[0];
      |          ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...