답안 #349472

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
349472 2021-01-17T16:09:26 Z ezdp 콤보 (IOI18_combo) C++14
컴파일 오류
0 ms 0 KB
#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")

#include<bits/stdc++.h>
#include<combo.h>
#include<ext/pb_ds/assoc_container.hpp>

#define endl '\n'
#define pb push_back
#define fr first
#define sc second
#define ll long long int
#define ld long double
#define bit(idx) idx&(-idx)
#define bin(x) bitset<32>(x)
#define all(A) A.begin(), A.end()
#define de(x) cout << #x << " = " << x << endl;
#define row vector<ll>
#define row_matrix vector<ll>
#define matrix vector<row_matrix>
#define ordered_set_T ll

using namespace std;
using namespace __gnu_pbds;

typedef tree<ordered_set_T, null_type, less<ordered_set_T>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
/// find_by_order(x) -> x-th element in the set
/// order_of_key(x)  -> how many elements are smaller than x
/// insert(x)		 -> inserts x into the set

string guess_sequence(int N){
	string ans, qry;
	ll tmp = press("AB");
	if(tmp){
		tmp = press("A");
		if(tmp) ans += 'A';
		else 	ans += 'B';
	}
	else{
		tmp = press("X");
		if(tmp) ans += 'X';
		else 	ans += 'Y';
	}
	if(N == 1) return ans;
	vector<char> v;
	if(ans != "A") v.pb("A"); 
	if(ans != "B") v.pb("B");
	if(ans != "X") v.pb("X");
	if(ans != "Y") v.pb("Y");
	for(int i = 2; i <= N - 1; i ++){
		qry.clear();
		qry += ans; qry += v[0]; qry += ans; qry += v[1]; qry += v[0]; qry += ans; qry += v[1]; qry += v[1]; qry += v[1]; qry += v[2];
		tmp = press(qry);
		if(tmp == ans.size() + 0) ans += v[2];
		if(tmp == ans.size() + 1) ans += v[0];
		if(tmp == ans.size() + 2) ans += v[1];
	}
	qry.clear(); qry += ans; qry += v[0]; qry += ans; qry += v[1];
	tmp = press(qry);
	if(tmp == ans.size() + 1){
		qry.clear(); qry += ans; qry += v[0];
		tmp = press(qry);
		if(tmp == ans.size() + 1) ans += v[0];
		else ans += v[1];
	}
	else ans += v[2];
	return ans;
}
/**

*/

Compilation message

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:46:25: error: no matching function for call to 'push_back(const char [2])'
   46 |  if(ans != "A") v.pb("A");
      |                         ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:46:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   46 |  if(ans != "A") v.pb("A");
      |                      ^~~
      |                      |
      |                      const char*
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:46:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   46 |  if(ans != "A") v.pb("A");
      |                      ^~~
      |                      |
      |                      const char*
combo.cpp:47:25: error: no matching function for call to 'push_back(const char [2])'
   47 |  if(ans != "B") v.pb("B");
      |                         ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:47:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   47 |  if(ans != "B") v.pb("B");
      |                      ^~~
      |                      |
      |                      const char*
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:47:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   47 |  if(ans != "B") v.pb("B");
      |                      ^~~
      |                      |
      |                      const char*
combo.cpp:48:25: error: no matching function for call to 'push_back(const char [2])'
   48 |  if(ans != "X") v.pb("X");
      |                         ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:48:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   48 |  if(ans != "X") v.pb("X");
      |                      ^~~
      |                      |
      |                      const char*
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:48:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   48 |  if(ans != "X") v.pb("X");
      |                      ^~~
      |                      |
      |                      const char*
combo.cpp:49:25: error: no matching function for call to 'push_back(const char [2])'
   49 |  if(ans != "Y") v.pb("Y");
      |                         ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:49:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   49 |  if(ans != "Y") v.pb("Y");
      |                      ^~~
      |                      |
      |                      const char*
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/queue:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86,
                 from combo.cpp:4:
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = char; _Alloc = std::allocator<char>; std::vector<_Tp, _Alloc>::value_type = char]' (near match)
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note:   conversion of argument 1 would be ill-formed:
combo.cpp:49:22: error: invalid conversion from 'const char*' to 'std::vector<char>::value_type' {aka 'char'} [-fpermissive]
   49 |  if(ans != "Y") v.pb("Y");
      |                      ^~~
      |                      |
      |                      const char*
combo.cpp:54:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |   if(tmp == ans.size() + 0) ans += v[2];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:55:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |   if(tmp == ans.size() + 1) ans += v[0];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:56:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   if(tmp == ans.size() + 2) ans += v[1];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:60:9: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  if(tmp == ans.size() + 1){
      |     ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:63:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |   if(tmp == ans.size() + 1) ans += v[0];
      |      ~~~~^~~~~~~~~~~~~~~~~