Submission #108511

#TimeUsernameProblemLanguageResultExecution timeMemory
108511abilCombo (IOI18_combo)C++14
97 / 100
59 ms600 KiB
#include <bits/stdc++.h> #include "combo.h" #define mk make_pair #define sc second #define fr first #define pb push_back #define all(s) s.begin(), s.end() #define sz(s) ( (int)s.size() ) #define Scan(a) scanf ("%I64d", &a) #define scan(a) scanf ("%d", &a) using namespace std; const long long INF = (int)1e18 + 7; const int N = (int)1e5 + 12; const int mod = 1000000007; string guess_sequence(int N){ string s = "", s1 = "AB"; int cur = press(s1); if(cur == 2){ s = "A"; } else if(cur == 1){ cur = press("A"); if(cur == 1){ s = "A"; } else{ s = "B"; } } else{ s1 = "XY"; int cur = press(s1); if(cur == 2){ s = "X"; } else if(cur == 1){ cur = press("X"); if(cur == 1){ s = "X"; } else{ s = "Y"; } } } char ch = s[0]; if(s.size() == N){ return s; } else{ if(ch == 'A'){ while(s.size() < N - 1){ string s1 = s; s1.pb('B'); s1.pb('X'); s1 = s1 + s; s1.pb('B'); s1.pb('Y'); s1 = s1 + s; s1.pb('B'); s1.pb('B'); s1 = s1 + s; s1.pb('Y'); cur = press(s1); if(cur == s.size()){ s.pb('X'); } else if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('B'); } } string s1 = s; s1.pb('X'); cur = press(s1); if(cur == s.size() + 1){ s.pb('X'); } else{ s1 = s; s1.pb('Y'); cur = press(s1); if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('B'); } } return s; } if(ch == 'B'){ while(s.size() < N - 1){ string s1 = s; s1.pb('A'); s1.pb('X'); s1 = s1 + s; s1.pb('A'); s1.pb('Y'); s1 = s1 + s; s1.pb('A'); s1.pb('A'); s1 = s1 + s; s1.pb('Y'); cur = press(s1); if(cur == s.size()){ s.pb('X'); } else if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('A'); } } string s1 = s; s1.pb('X'); cur = press(s1); if(cur == s.size() + 1){ s.pb('X'); } else{ s1 = s; s1.pb('Y'); cur = press(s1); if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('A'); } } return s; } if(ch == 'X'){ while(s.size() < N - 1){ string s1 = s; s1.pb('B'); s1.pb('A'); s1 = s1 + s; s1.pb('B'); s1.pb('Y'); s1 = s1 + s; s1.pb('B'); s1.pb('B'); s1 = s1 + s; s1.pb('Y'); cur = press(s1); if(cur == s.size()){ s.pb('A'); } else if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('B'); } } string s1 = s; s1.pb('A'); cur = press(s1); if(cur == s.size() + 1){ s.pb('A'); } else{ s1 = s; s1.pb('Y'); cur = press(s1); if(cur == s.size() + 1){ s.pb('Y'); } else{ s.pb('B'); } } return s; } if(ch == 'Y'){ while(s.size() < N - 1){ string s1 = s; s1.pb('B'); s1.pb('X'); s1 = s1 + s; s1.pb('B'); s1.pb('A'); s1 = s1 + s; s1.pb('B'); s1.pb('B'); s1 = s1 + s; s1.pb('A'); cur = press(s1); if(cur == s.size()){ s.pb('X'); } else if(cur == s.size() + 1){ s.pb('A'); } else{ s.pb('B'); } } string s1 = s; s1.pb('X'); cur = press(s1); if(cur == s.size() + 1){ s.pb('X'); } else{ s1 = s; s1.pb('A'); cur = press(s1); if(cur == s.size() + 1){ s.pb('A'); } else{ s.pb('B'); } } return s; } } }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:52:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   52 |       if(s.size() == N){
      |          ~~~~~~~~~^~~~
combo.cpp:57:34: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   57 |                   while(s.size() < N - 1){
      |                         ~~~~~~~~~^~~~~~~
combo.cpp:70:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |                         if(cur == s.size()){
      |                            ~~~~^~~~~~~~~~~
combo.cpp:74:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:84:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   84 |                   if(cur == s.size() + 1){
      |                      ~~~~^~~~~~~~~~~~~~~
combo.cpp:91:32: 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(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:101:34: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  101 |                   while(s.size() < N - 1){
      |                         ~~~~~~~~~^~~~~~~
combo.cpp:114:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  114 |                         if(cur == s.size()){
      |                            ~~~~^~~~~~~~~~~
combo.cpp:118:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  118 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:128:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  128 |                   if(cur == s.size() + 1){
      |                      ~~~~^~~~~~~~~~~~~~~
combo.cpp:135:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  135 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:145:34: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  145 |                   while(s.size() < N - 1){
      |                         ~~~~~~~~~^~~~~~~
combo.cpp:158:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  158 |                         if(cur == s.size()){
      |                            ~~~~^~~~~~~~~~~
combo.cpp:162:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  162 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:172:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  172 |                   if(cur == s.size() + 1){
      |                      ~~~~^~~~~~~~~~~~~~~
combo.cpp:179:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  179 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:189:34: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  189 |                   while(s.size() < N - 1){
      |                         ~~~~~~~~~^~~~~~~
combo.cpp:202:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  202 |                         if(cur == s.size()){
      |                            ~~~~^~~~~~~~~~~
combo.cpp:206:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  206 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:216:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  216 |                   if(cur == s.size() + 1){
      |                      ~~~~^~~~~~~~~~~~~~~
combo.cpp:223:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  223 |                         if(cur == s.size() + 1){
      |                            ~~~~^~~~~~~~~~~~~~~
combo.cpp:19:27: warning: control reaches end of non-void function [-Wreturn-type]
   19 |       string s = "", s1 = "AB";
      |                           ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...