제출 #706044

#제출 시각아이디문제언어결과실행 시간메모리
706044mseebacher콤보 (IOI18_combo)C++17
컴파일 에러
0 ms0 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
 
string guess_sequence(int n) {
 	string s = "";
	 vector<char> se = {'A','B','X','Y'};
	 if(press(se[0]+se[1])){
			s = press(se[0]) ? se[0] : se[1];
	 }else{
       	    s = press(se[2]) ? se[2] : se[3];
	 }
	 se.erase(find(se.begin(),se.end(),s[0]));
	 
	 while(s.length() < n-1){
		string zwischen = s+se[0]+se[0]+s+se[0]+se[1]+s+se[0]+se[2]+s+se[1];
		int erg = press(zwischen);
		if(erg == s.length()+2){
			s+=se[0];
		}else if(erg == s.length()+1){
			s+=se[1];
		}else{
			s+=se[2];
		}
	 }
  	 if(s.length() == n) return s;
	 if(press(s+se[0]) == n) return s+se[0];
	 if(press(s+se[1]) == n) return s+se[1];
	 return s+se[2];
	 
}

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:8:17: error: could not convert '(((int)se.std::vector<char>::operator[](0)) + ((int)se.std::vector<char>::operator[](1)))' from 'int' to 'std::string' {aka 'std::__cxx11::basic_string<char>'}
    8 |   if(press(se[0]+se[1])){
combo.cpp:9:19: error: could not convert 'se.std::vector<char>::operator[](0)' from '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} to 'std::string' {aka 'std::__cxx11::basic_string<char>'}
    9 |    s = press(se[0]) ? se[0] : se[1];
      |                   ^
      |                   |
      |                   __gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type {aka char}
combo.cpp:11:28: error: could not convert 'se.std::vector<char>::operator[](2)' from '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} to 'std::string' {aka 'std::__cxx11::basic_string<char>'}
   11 |             s = press(se[2]) ? se[2] : se[3];
      |                            ^
      |                            |
      |                            __gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type {aka char}
combo.cpp:15:20: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   15 |   while(s.length() < n-1){
      |         ~~~~~~~~~~~^~~~~
combo.cpp:18:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |   if(erg == s.length()+2){
      |      ~~~~^~~~~~~~~~~~~~~
combo.cpp:20:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |   }else if(erg == s.length()+1){
      |            ~~~~^~~~~~~~~~~~~~~
combo.cpp:26:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |     if(s.length() == n) return s;
      |        ~~~~~~~~~~~^~~~