제출 #766930

#제출 시각아이디문제언어결과실행 시간메모리
766930turtlemode콤보 (IOI18_combo)C++14
100 / 100
22 ms520 KiB
#include "combo.h" #include <set> #include <vector> #include <iostream> using namespace std; std::string guess_sequence(int N) { if (N == 0){ return ""; } std::string S = ""; if (press("AB")){ if (press("A")){ S += "A"; } else{ S += "B"; } } else { if (press("X")){ S += "X"; } else{ S += "Y"; } } if (N == 1){ return S; } set<string> all_chars {"A", "B", "X", "Y"}; all_chars.erase(S); vector<string> legal_chars; set<string>::iterator k; for (k = all_chars.begin(); k != all_chars.end(); ++k) legal_chars.push_back(*k); //cout << "Current: " << S << endl; while (S.length() < N - 1){ // int coins = press(S + "B" + S + "XB" + S + "XX" + S + "XY"); int coins = press(S + legal_chars[0] + S + legal_chars[1] + legal_chars[0] + S + legal_chars[1] + legal_chars[1] + S + legal_chars[1] + legal_chars[2]); if (coins == S.length() + 1){ S += legal_chars[0]; } else if (coins == S.length() + 2){ S += legal_chars[1]; } else if (coins == S.length() + 0){ S += legal_chars[2]; } else { //cout << "Wuut" << endl; } //cout << "Current: " << S << endl; } if (press(S + legal_chars[0]) == S.length() + 1){ return S + legal_chars[0]; } if (press(S + legal_chars[1]) == S.length() + 1){ return S + legal_chars[1]; } else{ return S + legal_chars[2]; } //cout << "Wuuut2" << endl; return S; }

컴파일 시 표준 에러 (stderr) 메시지

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:38:21: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |   while (S.length() < N - 1){
      |          ~~~~~~~~~~~^~~~~~~
combo.cpp:41:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |     if (coins == S.length() + 1){
      |         ~~~~~~^~~~~~~~~~~~~~~~~
combo.cpp:44:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |     else if (coins == S.length() + 2){
      |              ~~~~~~^~~~~~~~~~~~~~~~~
combo.cpp:47:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     else if (coins == S.length() + 0){
      |              ~~~~~~^~~~~~~~~~~~~~~~~
combo.cpp:57:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |   if (press(S + legal_chars[0]) == S.length() + 1){
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
combo.cpp:60:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |   if (press(S + legal_chars[1]) == S.length() + 1){
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...