제출 #600612

#제출 시각아이디문제언어결과실행 시간메모리
600612enerelt14콤보 (IOI18_combo)C++17
5 / 100
2 ms208 KiB
#include "combo.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
int n;
string guess_sequence(int N){
    string ans;
    n=N;
    string p, x;
    if (n!=3)return ans;
    for (int i=0;i<n;i++){
        p.clear();
        if (i==0){
            p+='A';
            for (int j=1;j<4*n;j++)p+='B';
            if (press(p)>0){
                p.clear();
                for (int j=0;j<4*n;j++)p+='A';
                if (press(p)>0){
                    ans+='A';
                    x+='B';x+='X';x+='Y';
                }
                else{
                    ans+='B';
                    x+='A';x+='X';x+='Y';
                }
                p.clear();
                continue;
            }
            p.clear();
            for (int j=0;j<4*n;j++)p+='X';
            if (press(p)>0){
                ans+='X';
                x+='B';x+='A';x+='Y';
            }
            else{
                ans+='Y';
                x+='B';x+='X';x+='A';
            }
            p.clear();
            continue;
        }
        if (i==n-1){
            if (n!=3)return ans;
            p+=ans;
            for (int j=ans.size();j<4*n;j++)p+=x[0];
            if (press(p)==n){
                ans+=x[0];
                return ans;
            }
            p.clear();
            p+=ans;
            for (int j=ans.size();j<4*n;j++)p+=x[1];
            if (press(p)==n){
                ans+=x[1];
                return ans;
            }
            ans+=x[2];
            return ans;
        }
        if (x.size()!=3)return ans;
        for (int q=0;q<4;q++){
            p+=ans;
            if (q==3){
                p+=x[0];
                for (int j=ans.size()+1;j<n;j++)p+=ans[0];
                break;
            }
            p+=x[1];
            p+=x[q];
            for (int j=ans.size()+2;j<n;j++)p+=ans[0];
        }
        int y=press(p);
        if (y==ans.size())ans+=x[2];
        if (y==ans.size()+1)ans+=x[0];
        if (y==ans.size()+2)ans+=x[1];
        p.clear();
    }
}

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:74:14: 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 (y==ans.size())ans+=x[2];
      |             ~^~~~~~~~~~~~
combo.cpp:75:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |         if (y==ans.size()+1)ans+=x[0];
      |             ~^~~~~~~~~~~~~~
combo.cpp:76:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |         if (y==ans.size()+2)ans+=x[1];
      |             ~^~~~~~~~~~~~~~
combo.cpp:9:12: warning: control reaches end of non-void function [-Wreturn-type]
    9 |     string p, x;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...