Submission #99204

#TimeUsernameProblemLanguageResultExecution timeMemory
99204cfalasCombo (IOI18_combo)C++14
5 / 100
2 ms276 KiB
/*

  ______      _                _____ 
  |  ____/\   | |        /\    / ____|
  | |__ /  \  | |       /  \  | (___  
  |  __/ /\ \ | |      / /\ \  \___ \
  | | / ____ \| |____ / ____ \ ____) |
  |_|/_/    \_\______/_/    \_\_____/ 
                                            
                                            

*/
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define INF 1000000
#define MOD 1000000007

typedef pair<ll, ll> ii;
typedef vector<ll> vi;
typedef pair<ii, ll> iii;
typedef vector<ii> vii;

#define F first
#define S second

#define mp make_pair
#define endl '\n'
#define priority_queue pq

#include "combo.h"

string guess_sequence(int N) {
    // Find first character in 2 moves
    char first;
    if(press("AB")>=1){
        if(press("B"))
            first = 'B';
        else
            first = 'A';
    }
    else{
        if(press("X"))
            first = 'X';
        else
            first = 'Y';
    }
    string s = "";
    s+=first;
    for(int i=1;i<N-1;i++){
        if(first=='A'){
            int ans = press(s + "X" + s + "BX" + s + "BB" + s + "BY");
            if(ans==s.size())
                s+="Y";
            else if(ans==s.size()+1)
                s+="X";
            else
                s+="B";
        }
        if(first=='B'){
            int ans = press(s + "X" + s + "AX" + s + "AA" + s + "AY");
            if(ans==s.size())
                s+="Y";
            else if(ans==s.size()+1)
                s+="X";
            else
                s+="A";
        }
        if(first=='X'){
            int ans = press(s + "A" + s + "BA" + s + "BB" + s + "BY");
            if(ans==s.size())
                s+="Y";
            else if(ans==s.size()+1)
                s+="A";
            else
                s+="B";
        }
        if(first=='Y'){
            int ans = press(s + "X" + s + "BX" + s + "BB" + s + "BA");
            if(ans==s.size())
                s+="A";
            else if(ans==s.size()+1)
                s+="X";
            else
                s+="B";
        }
    }
    if(first=='A'){
        if(press(s + "B" + s + "X")==s.size()+1){
            if(press(s + "B")==s.size()+1)
                s+="B";
            else
                s+="X";
        }
        else
            s+="Y";
    }
    if(first=='B'){
        if(press(s + "A" + s + "X")==s.size()+1){
            if(press(s + "A")==s.size()+1)
                s+="A";
            else
                s+="X";
        }
        else
            s+="Y";
    }
    if(first=='X'){
        if(press(s + "B" + s + "A")==s.size()+1){
            if(press(s + "B")==s.size()+1)
                s+="B";
            else
                s+="A";
        }
        else
            s+="Y";
    }
    if(first=='Y'){
        if(press(s + "B" + s + "X")==s.size()+1){
            if(press(s + "B")==s.size()+1)
                s+="B";
            else
                s+="X";
        }
        else
            s+="A";
    }
    return s;
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:54:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |             if(ans==s.size())
      |                ~~~^~~~~~~~~~
combo.cpp:56:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |             else if(ans==s.size()+1)
      |                     ~~~^~~~~~~~~~~~
combo.cpp:63:19: 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(ans==s.size())
      |                ~~~^~~~~~~~~~
combo.cpp:65:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |             else if(ans==s.size()+1)
      |                     ~~~^~~~~~~~~~~~
combo.cpp:72:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |             if(ans==s.size())
      |                ~~~^~~~~~~~~~
combo.cpp:74:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |             else if(ans==s.size()+1)
      |                     ~~~^~~~~~~~~~~~
combo.cpp:81:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |             if(ans==s.size())
      |                ~~~^~~~~~~~~~
combo.cpp:83:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   83 |             else if(ans==s.size()+1)
      |                     ~~~^~~~~~~~~~~~
combo.cpp:90:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   90 |         if(press(s + "B" + s + "X")==s.size()+1){
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:91:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |             if(press(s + "B")==s.size()+1)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:100:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |         if(press(s + "A" + s + "X")==s.size()+1){
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:101:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  101 |             if(press(s + "A")==s.size()+1)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:110:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  110 |         if(press(s + "B" + s + "A")==s.size()+1){
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:111:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  111 |             if(press(s + "B")==s.size()+1)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:120:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  120 |         if(press(s + "B" + s + "X")==s.size()+1){
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:121:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  121 |             if(press(s + "B")==s.size()+1)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...