제출 #439223

#제출 시각아이디문제언어결과실행 시간메모리
439223IdkwhoamiCombo (IOI18_combo)C++17
97 / 100
54 ms640 KiB
#include "bits/stdc++.h"
#include "combo.h"

using namespace std;

string guess_sequence(int N) {
    string ans = "Y";
    vector<string> tf = {"A", "B", "X"}, all = {"A", "B", "X", "Y"};
    for(auto t:tf){
        int x = press(t);
        if(x == 1) {
            ans = t;
            break;
        }
    }
    vector<string> possible;
    for(auto t:all){
        if(t != ans)possible.push_back(t);
    }


    while(ans.size() != N){
        
        if(ans.size() <= N-2){
            string test1 = ans + possible[0] + ans + possible[1] + possible[2] + ans + possible[1] + possible[0] + ans + possible[1] + possible[1];

            int x = press(test1);
            if(x == ans.size()){
                ans = ans + possible[2];
            }
            else if(x == ans.size() + 1){
                ans = ans + possible[0];
            }
            else{
                ans = ans + possible[1];
            }
        }
        else{
            string test1 = ans + possible[0] + ans + possible[1];
 
            int x = press(test1);
            if(x == ans.size()){
                ans = ans + possible[2];
            }
            else{
                x = press(ans + possible[0]);
                if(x == ans.size())ans = ans + possible[1];
                else ans = ans + possible[0];
            }
        }
    }
    return ans;
}

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:22:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |     while(ans.size() != N){
      |           ~~~~~~~~~~~^~~~
combo.cpp:24:23: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   24 |         if(ans.size() <= N-2){
      |            ~~~~~~~~~~~^~~~~~
combo.cpp:28:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |             if(x == ans.size()){
      |                ~~^~~~~~~~~~~~~
combo.cpp:31:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |             else if(x == ans.size() + 1){
      |                     ~~^~~~~~~~~~~~~~~~~
combo.cpp:42:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |             if(x == ans.size()){
      |                ~~^~~~~~~~~~~~~
combo.cpp:47:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |                 if(x == ans.size())ans = ans + possible[1];
      |                    ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...