Submission #239002

#TimeUsernameProblemLanguageResultExecution timeMemory
239002jhtanCombo (IOI18_combo)C++14
97 / 100
40 ms604 KiB
#include "combo.h" #include <iostream> using namespace std; std::string guess_sequence(int N) { string s = "", V=""; // 5 points /* if (press("A") == 1) s += "A"; else if (press("B") == 1) s += "B"; else if (press("X") == 1) s += "X"; else if (press("Y") == 1) s += "Y"; if (press(s + "A") == 2) s += "A"; else if (press(s + "B") == 2) s += "B"; else if (press(s + "X") == 2) s += "X"; else if (press(s + "Y") == 2) s += "Y"; if (press(s + "A") == 3) s += "A"; else if (press(s + "B") == 3) s += "B"; else if (press(s + "X") == 3) s += "X"; else if (press(s + "Y") == 3) s += "Y"; */ // 10 points /* for(int i=0; i<N; i++) { if (press(s + "A") == i+1) s += "A"; else if (press(s + "B") == i+1) s += "B"; else if (press(s + "X") == i+1) s += "X"; else if (press(s + "Y") == i+1) s += "Y"; } */ // 10 points -___- /* if (press("A") == 1) { s += "A", V = "BXY"; } else if (press("B") == 1) { s += "B", V = "AXY"; } else if (press("X") == 1) { s += "X", V = "ABY"; } else if (press("Y") == 1) { s += "Y", V = "ABX"; } for(int i=1; i<N; i++) { if (press(s + V[0]) == i+1) s += V[0]; else if (press(s + V[1]) == i+1) s += V[1]; else if (press(s + V[2]) == i+1) s += V[2]; } */ // 30 points /* if(press("AB") >= 1) { if (press("A") == 1) { s += "A", V = "BXY"; } else { s += "B", V = "AXY"; } } else { if (press("X") == 1) { s += "X", V = "ABY"; } else { s += "Y", V = "ABX"; } } for(int i=1; i<N; i++) { int p1 = press(s + V[0]); int p2 = press(s + V[1]); if(p1 > p2) s += V[0]; else if (p2 > p1) s += V[1]; else s += V[2]; } */ // 100 points string L = "ABXY"; if(press("AB") > 0) { if(press("A") > 0) { s = "A"; L = "BXY"; } else { s = "B"; L = "AXY"; } } else if(press("XY") > 0) { if(press("X") > 0) { s = "X"; L = "ABY"; } else { s = "Y"; L = "ABX"; } } if(N == 1) return s; while(s.length() < N - 1) { int c = press(s+L[0] + s+L[1]+L[0] + s+L[1]+L[1] + s+L[1]+L[2]); if(c == s.length()) s += L[2]; else if(c == s.length() + 1) s += L[0]; else if(c == s.length() + 2) s += L[1]; } if(press(s + L[0]) > s.length()) s += L[0]; else { if(press(s + L[1]) > s.length()) s += L[1]; else s += L[2]; } return s; }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:94:20: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   94 |   while(s.length() < N - 1) {
      |         ~~~~~~~~~~~^~~~~~~
combo.cpp:96:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   96 |     if(c == s.length()) s += L[2];
      |        ~~^~~~~~~~~~~~~
combo.cpp:97:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   97 |     else if(c == s.length() + 1) s += L[0];
      |             ~~^~~~~~~~~~~~~~~~~
combo.cpp:98:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   98 |     else if(c == s.length() + 2) s += L[1];
      |             ~~^~~~~~~~~~~~~~~~~
combo.cpp:101:22: 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 + L[0]) > s.length()) s += L[0];
      |      ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
combo.cpp:103:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |     if(press(s + L[1]) > s.length()) s += L[1];
      |        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...