# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1123176 | razivo | The short shank; Redemption (BOI21_prison) | C++20 | Compilation error | 0 ms | 0 KiB |
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
vector<int> v(2e6);
pair<pair<int,int>,int> opt(int i, int j) {
int best = 0;
int bestpos = j-1;
vector<int> q;
for (int k = j-1; k >=i; --k) {
if(v[k]==-1) {
q.push_back(k);
continue;
}
int p = k+v[k];
int v = 0;
while(!q.empty() && q.back()<p) {
q.pop_back();
v++;
}
if(v>best) {
best=v;
bestpos=k;
}
}
return {{q.size(),best},bestpos};
}
int main() {
int n,d,t; cin>>n>>d>>t;
for (int i = 0; i < n; ++i) {
int x; cin>>x;
if(x>t) v[i]=-1;
else v[i]=t-x+1;
}
priority_queue<pair<int,tuple<int,int,int>>> q;
auto [a,b] = opt(0,n);
auto [l,m] = a;
int init = n-l;
q.push({m,{b,0,n}});
for (int i = 0; i < d; ++i) {
auto [a,b] = q.top(); q.pop();
auto [p,l,r] = b;
init-=a;
auto [u,v] = opt(l,p+1);
auto [u2,v2] = opt(p+1,r);
q.push({u.second,{v,l,p+1}});
q.push({u2.second,{v2,p+1,r}});
}
cout<<init<<endl;
}
Compilation message (stderr)
In file included from /usr/include/c++/11/bits/stl_algobase.h:64, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_pair.h: In instantiation of 'struct std::pair<int, std::tuple<int, int, int> >': prison.cpp:39:11: required from here /usr/include/c++/11/bits/stl_pair.h:218:11: error: 'std::pair<_T1, _T2>::second' has incomplete type 218 | _T2 second; ///< The second member | ^~~~~~ In file included from /usr/include/c++/11/bits/move.h:57, from /usr/include/c++/11/bits/exception_ptr.h:43, from /usr/include/c++/11/exception:153, from /usr/include/c++/11/ios:39, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/type_traits:45:11: note: declaration of 'class std::tuple<int, int, int>' 45 | class tuple; | ^~~~~ /usr/include/c++/11/type_traits: In instantiation of 'struct std::is_copy_assignable<std::tuple<int, int, int> >': /usr/include/c++/11/type_traits:152:12: required from 'struct std::__and_<std::is_copy_assignable<int>, std::is_copy_assignable<std::tuple<int, int, int> > >' /usr/include/c++/11/bits/stl_pair.h:390:7: required from 'struct std::pair<int, std::tuple<int, int, int> >' prison.cpp:39:11: required from here /usr/include/c++/11/type_traits:1110:52: error: static assertion failed: template argument must be a complete class or an unbounded array 1110 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/11/type_traits:1110:52: note: 'std::__is_complete_or_unbounded<std::__type_identity<std::tuple<int, int, int> > >((std::__type_identity<std::tuple<int, int, int> >{}, std::__type_identity<std::tuple<int, int, int> >()))' evaluates to false /usr/include/c++/11/type_traits: In instantiation of 'struct std::is_move_assignable<std::tuple<int, int, int> >': /usr/include/c++/11/type_traits:152:12: required from 'struct std::__and_<std::is_move_assignable<int>, std::is_move_assignable<std::tuple<int, int, int> > >' /usr/include/c++/11/bits/stl_pair.h:401:7: required from 'struct std::pair<int, std::tuple<int, int, int> >' prison.cpp:39:11: required from here /usr/include/c++/11/type_traits:1131:52: error: static assertion failed: template argument must be a complete class or an unbounded array 1131 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/11/type_traits:1131:52: note: 'std::__is_complete_or_unbounded<std::__type_identity<std::tuple<int, int, int> > >((std::__type_identity<std::tuple<int, int, int> >{}, std::__type_identity<std::tuple<int, int, int> >()))' evaluates to false /usr/include/c++/11/type_traits: In instantiation of 'struct std::is_constructible<std::tuple<int, int, int>, const std::tuple<int, int, int>&>': /usr/include/c++/11/type_traits:152:12: required from 'struct std::__and_<std::is_constructible<int, const int&>, std::is_constructible<std::tuple<int, int, int>, const std::tuple<int, int, int>&> >' /usr/include/c++/11/bits/stl_pair.h:107:45: required from 'static constexpr bool std::_PCC<<anonymous>, _T1, _T2>::_ConstructiblePair() [with _U1 = int; _U2 = std::tuple<int, int, int>; bool <anonymous> = true; _T1 = int; _T2 = std::tuple<int, int, int>]' /usr/include/c++/11/bits/stl_pair.h:262:35: required by substitution of 'template<class _U1, class _U2, typename std::enable_if<(_ConstructiblePair<_U1, _U2>() && _ImplicitlyConvertiblePair<_U1, _U2>()), bool>::type <anonymous> > constexpr std::pair<int, std::tuple<int, int, int> >::pair(const int&, const std::tuple<int, int, int>&) [with _U1 = int; _U2 = std::tuple<int, int, int>; typename std::enable_if<(_ConstructiblePair<_U1, _U2>() && _ImplicitlyConvertiblePair<_U1, _U2>()), bool>::type <anonymous> = <missing>]' prison.cpp:39:11: required from here /usr/include/c++/11/type_traits:955:52: error: static assertion failed: template argument must be a complete class or an unbounded array 955 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/11/type_traits:955:52: note: 'std::__is_complete_or_unbounded<std::__type_identity<std::tuple<int, int, int> > >((std::__type_identity<std::tuple<int, int, int> >{}, std::__type_identity<std::tuple<int, int, int> >()))' evaluates to false /usr/include/c++/11/type_traits: In instantiation of 'struct std::is_constructible<std::tuple<int, int, int>, const std::tuple<int, int, int>&&>': /usr/include/c++/11/type_traits:152:12: required from 'struct std::__and_<std::is_constructible<std::tuple<int, int, int>, const std::tuple<int, int, int>&&>, std::__and_<std::is_convertible<int&, int>, std::is_convertible<const std::tuple<int, int, int>&, std::tuple<int, int, int> > > >' /usr/include/c++/11/type_traits:157:12: required from 'struct std::__and_<std::is_constructible<int, int&>, std::is_constructible<std::tuple<int, int, int>, const std::tuple<int, int, int>&&>, std::__and_<std::is_convertible<int&, int>, std::is_convertible<const std::tuple<int, int, int>&, std::tuple<int, int, int> > > >' /usr/include/c++/11/bits/stl_pair.h:156:12: required from 'static constexpr bool std::_PCC<<anonymous>, _T1, _T2>::_MoveCopyPair() [with bool __implicit = true; _U1 = int&; _U2 = std::tuple<int, int, int>; bool <anonymous> = true; _T1 = int; _T2 = std::tuple<int, int, int>]' /usr/include/c++/11/bits/stl_pair.h:320:36: required by substitution of 'template<class _U1, typename std::enable_if<_MoveCopyPair<true, _U1, std::tuple<int, int, int> >(), bool>::type <anonymous> > constexpr std::pair<int, std::tuple<int, int, int> >::pair(_U1&&, const std::tuple<int, int, int>&) [with _U1 = int&; typename std::enable_if<_MoveCopyPair<true, _U1, std::tuple<int, int, int> >(), bool>::type <anonymous> = <missing>]' prison.cpp:39:11: required from here /usr/include/c++/11/type_traits:955:52: error: static assertion failed: template argument must be a complete class or an unbounded array /usr/include/c++/11/type_traits:955:52: note: 'std::__is_complete_or_unbounded<std::__type_identity<std::tuple<int, int, int> > >((std::__type_identity<std::tuple<int, int, int> >{}, std::__type_identity<std::tuple<int, int, int> >()))' evaluates to false prison.cpp: In function 'int main()': prison.cpp:39:11: error: no matching function for call to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::push(<brace-enclosed initializer list>)' 39 | q.push({m,{b,0,n}}); | ~~~~~~^~~~~~~~~~~~~ In file included from /usr/include/c++/11/queue:64, from prison.cpp:2: /usr/include/c++/11/bits/stl_queue.h:640:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(const value_type&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 640 | push(const value_type& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:640:30: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<int, std::tuple<int, int, int> >&'} 640 | push(const value_type& __x) | ~~~~~~~~~~~~~~~~~~^~~ /usr/include/c++/11/bits/stl_queue.h:648:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 648 | push(value_type&& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:648:25: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::value_type&&' {aka 'std::pair<int, std::tuple<int, int, int> >&&'} 648 | push(value_type&& __x) | ~~~~~~~~~~~~~^~~ prison.cpp:46:15: error: no matching function for call to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::push(<brace-enclosed initializer list>)' 46 | q.push({u.second,{v,l,p+1}}); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/11/queue:64, from prison.cpp:2: /usr/include/c++/11/bits/stl_queue.h:640:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(const value_type&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 640 | push(const value_type& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:640:30: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<int, std::tuple<int, int, int> >&'} 640 | push(const value_type& __x) | ~~~~~~~~~~~~~~~~~~^~~ /usr/include/c++/11/bits/stl_queue.h:648:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 648 | push(value_type&& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:648:25: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::value_type&&' {aka 'std::pair<int, std::tuple<int, int, int> >&&'} 648 | push(value_type&& __x) | ~~~~~~~~~~~~~^~~ prison.cpp:47:15: error: no matching function for call to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::push(<brace-enclosed initializer list>)' 47 | q.push({u2.second,{v2,p+1,r}}); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/11/queue:64, from prison.cpp:2: /usr/include/c++/11/bits/stl_queue.h:640:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(const value_type&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 640 | push(const value_type& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:640:30: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<int, std::tuple<int, int, int> >&'} 640 | push(const value_type& __x) | ~~~~~~~~~~~~~~~~~~^~~ /usr/include/c++/11/bits/stl_queue.h:648:7: note: candidate: 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, std::tuple<int, int, int> >]' 648 | push(value_type&& __x) | ^~~~ /usr/include/c++/11/bits/stl_queue.h:648:25: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::priority_queue<std::pair<int, std::tuple<int, int, int> > >::value_type&&' {aka 'std::pair<int, std::tuple<int, int, int> >&&'} 648 | push(value_type&& __x) | ~~~~~~~~~~~~~^~~ In file included from /usr/include/c++/11/bits/stl_algo.h:61, from /usr/include/c++/11/string:52, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_heap.h: In instantiation of 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]': /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here /usr/include/c++/11/bits/stl_heap.h:262:17: error: use of deleted function 'std::pair<int, std::tuple<int, int, int> >& std::pair<int, std::tuple<int, int, int> >::operator=(const std::pair<int, std::tuple<int, int, int> >&)' 262 | *__result = _GLIBCXX_MOVE(*__first); | ^ In file included from /usr/include/c++/11/bits/stl_algobase.h:64, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_pair.h:211:12: note: 'std::pair<int, std::tuple<int, int, int> >& std::pair<int, std::tuple<int, int, int> >::operator=(const std::pair<int, std::tuple<int, int, int> >&)' is implicitly declared as deleted because 'std::pair<int, std::tuple<int, int, int> >' declares a move constructor or move assignment operator 211 | struct pair | ^~~~ In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h: In instantiation of 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::tuple<int, int, int> >]': /usr/include/c++/11/bits/predefined_ops.h:158:30: required from 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Iterator2 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_heap.h:231:14: required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Distance = long int; _Tp = std::pair<int, std::tuple<int, int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:263:25: required from 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here /usr/include/c++/11/bits/stl_function.h:400:20: error: no match for 'operator<' (operand types are 'const std::pair<int, std::tuple<int, int, int> >' and 'const std::pair<int, std::tuple<int, int, int> >') 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/stl_algobase.h:67, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_iterator.h:538:5: note: candidate: 'template<class _IteratorL, class _IteratorR> requires three_way_comparable_with<_IteratorR, _IteratorL, std::partial_ordering> constexpr std::compare_three_way_result_t<_IteratorL, _IteratorR> std::operator<=>(const std::reverse_iterator<_IteratorL>&, const std::reverse_iterator<_IteratorR>&)' (reversed) 538 | operator<=>(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/11/bits/stl_iterator.h:538:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::reverse_iterator<_IteratorL>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/stl_algobase.h:67, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_iterator.h:1596:5: note: candidate: 'template<class _IteratorL, class _IteratorR> requires three_way_comparable_with<_IteratorR, _IteratorL, std::partial_ordering> constexpr std::compare_three_way_result_t<_IteratorL, _IteratorR> std::operator<=>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' (reversed) 1596 | operator<=>(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/11/bits/stl_iterator.h:1596:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::move_iterator<_IteratorL>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/basic_string.h:48, from /usr/include/c++/11/string:55, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/string_view:556:5: note: candidate: 'template<class _CharT, class _Traits> constexpr decltype (__char_traits_cmp_cat<_Traits>(0)) std::operator<=>(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)' (reversed) 556 | operator<=>(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/11/string_view:556:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'std::pair<int, std::tuple<int, int, int> >' is not derived from 'std::basic_string_view<_CharT, _Traits>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/string:55, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/basic_string.h:6276:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> decltype (__char_traits_cmp_cat<_Traits>(0)) std::operator<=>(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)' (reversed) 6276 | operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/11/bits/basic_string.h:6276:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/stl_algobase.h:64, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_pair.h:473:5: note: candidate: 'template<class _T1, class _T2> constexpr std::common_comparison_category_t<decltype (std::__detail::__synth3way(declval<_T1&>(), declval<_T1&>())), decltype (std::__detail::__synth3way(declval<_T2&>(), declval<_T2&>()))> std::operator<=>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' (rewritten) 473 | operator<=>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/11/bits/stl_pair.h:473:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/bits/stl_pair.h:65, from /usr/include/c++/11/bits/stl_algobase.h:64, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/compare: In substitution of 'template<class _T1, class _T2> constexpr std::common_comparison_category_t<decltype (std::__detail::__synth3way(declval<_T1&>(), declval<_T1&>())), decltype (std::__detail::__synth3way(declval<_T2&>(), declval<_T2&>()))> std::operator<=>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&) [with _T1 = int; _T2 = std::tuple<int, int, int>]': /usr/include/c++/11/bits/stl_function.h:400:20: required from 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::tuple<int, int, int> >]' /usr/include/c++/11/bits/predefined_ops.h:158:30: required from 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Iterator2 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_heap.h:231:14: required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Distance = long int; _Tp = std::pair<int, std::tuple<int, int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:263:25: required from 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here /usr/include/c++/11/compare:915:41: error: no match for call to '(const std::__detail::_Synth3way) (std::tuple<int, int, int>&, std::tuple<int, int, int>&)' 915 | = decltype(__detail::__synth3way(std::declval<_Tp&>(), | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 916 | std::declval<_Up&>())); | ~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/11/compare:890:9: note: candidate: 'template<class _Tp, class _Up> constexpr auto std::__detail::_Synth3way::operator()(const _Tp&, const _Up&) const requires requires{{std::__detail::_Synth3way::operator()::__t < std::__detail::_Synth3way::operator()::__u} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];{std::__detail::_Synth3way::operator()::__u < std::__detail::_Synth3way::operator()::__t} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];}' 890 | operator()(const _Tp& __t, const _Up& __u) const | ^~~~~~~~ /usr/include/c++/11/compare:890:9: note: template argument deduction/substitution failed: /usr/include/c++/11/compare:890:9: note: constraints not satisfied /usr/include/c++/11/compare: In substitution of 'template<class _Tp, class _Up> constexpr auto std::__detail::_Synth3way::operator()(const _Tp&, const _Up&) const requires requires{{__t < __u} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];{__u < __t} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];} [with _Tp = std::tuple<int, int, int>; _Up = std::tuple<int, int, int>]': /usr/include/c++/11/compare:915:34: required by substitution of 'template<class _T1, class _T2> constexpr std::common_comparison_category_t<decltype (std::__detail::__synth3way(declval<_T1&>(), declval<_T1&>())), decltype (std::__detail::__synth3way(declval<_T2&>(), declval<_T2&>()))> std::operator<=>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&) [with _T1 = int; _T2 = std::tuple<int, int, int>]' /usr/include/c++/11/bits/stl_function.h:400:20: required from 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::tuple<int, int, int> >]' /usr/include/c++/11/bits/predefined_ops.h:158:30: required from 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Iterator2 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_heap.h:231:14: required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Distance = long int; _Tp = std::pair<int, std::tuple<int, int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:263:25: required from 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here /usr/include/c++/11/compare:890:2: required by the constraints of 'template<class _Tp, class _Up> constexpr auto std::__detail::_Synth3way::operator()(const _Tp&, const _Up&) const requires requires{{__t < __u} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];{__u < __t} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];}' /usr/include/c++/11/compare:892:11: in requirements [with _Up = std::tuple<int, int, int>; _Tp = std::tuple<int, int, int>] /usr/include/c++/11/compare:894:17: note: the required expression '(__t < __u)' is invalid 894 | { __t < __u } -> __boolean_testable; | ~~~~^~~~~ /usr/include/c++/11/compare:895:17: note: the required expression '(__u < __t)' is invalid 895 | { __u < __t } -> __boolean_testable; | ~~~~^~~~~ /usr/include/c++/11/compare: In substitution of 'template<class _T1, class _T2> constexpr std::common_comparison_category_t<decltype (std::__detail::__synth3way(declval<_T1&>(), declval<_T1&>())), decltype (std::__detail::__synth3way(declval<_T2&>(), declval<_T2&>()))> std::operator<=>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&) [with _T1 = int; _T2 = std::tuple<int, int, int>]': /usr/include/c++/11/bits/stl_function.h:400:20: required from 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::tuple<int, int, int> >]' /usr/include/c++/11/bits/predefined_ops.h:158:30: required from 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Iterator2 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_heap.h:231:14: required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Distance = long int; _Tp = std::pair<int, std::tuple<int, int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:263:25: required from 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here cc1plus: note: set '-fconcepts-diagnostics-depth=' to at least 2 for more detail In file included from /usr/include/c++/11/bits/stl_algobase.h:67, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h: In instantiation of 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::tuple<int, int, int> >]': /usr/include/c++/11/bits/predefined_ops.h:158:30: required from 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Iterator2 = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_heap.h:231:14: required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Distance = long int; _Tp = std::pair<int, std::tuple<int, int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:263:25: required from 'constexpr void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<std::less<std::pair<int, std::tuple<int, int, int> > > >]' /usr/include/c++/11/bits/stl_heap.h:332:19: required from 'constexpr void std::pop_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, std::tuple<int, int, int> >*, std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' /usr/include/c++/11/bits/stl_queue.h:678:15: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::pop() [with _Tp = std::pair<int, std::tuple<int, int, int> >; _Sequence = std::vector<std::pair<int, std::tuple<int, int, int> >, std::allocator<std::pair<int, std::tuple<int, int, int> > > >; _Compare = std::less<std::pair<int, std::tuple<int, int, int> > >]' prison.cpp:41:36: required from here /usr/include/c++/11/bits/stl_iterator.h:554:5: note: candidate: 'template<class _Iterator> requires three_way_comparable<_Iterator, std::partial_ordering> constexpr std::compare_three_way_result_t<_Iterator, _Iterator> std::operator<=>(const std::reverse_iterator<_IteratorL>&, const std::reverse_iterator<_IteratorL>&)' (rewritten) 554 | operator<=>(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/11/bits/stl_iterator.h:554:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::reverse_iterator<_IteratorL>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/stl_algobase.h:67, from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_iterator.h:1655:5: note: candidate: 'template<class _Iterator> requires three_way_comparable<_Iterator, std::partial_ordering> constexpr std::compare_three_way_result_t<_Iterator, _Iterator> std::operator<=>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' (rewritten) 1655 | operator<=>(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/11/bits/stl_iterator.h:1655:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::move_iterator<_IteratorL>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/bits/basic_string.h:48, from /usr/include/c++/11/string:55, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/string_view:549:5: note: candidate: 'template<class _CharT, class _Traits> constexpr decltype (__char_traits_cmp_cat<_Traits>(0)) std::operator<=>(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' (rewritten) 549 | operator<=>(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/11/string_view:549:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'std::pair<int, std::tuple<int, int, int> >' is not derived from 'std::basic_string_view<_CharT, _Traits>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/string:55, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/basic_string.h:6262:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> decltype (__char_traits_cmp_cat<_Traits>(0)) std::operator<=>(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)' (rewritten) 6262 | operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/11/bits/basic_string.h:6262:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/deque:67, from /usr/include/c++/11/queue:60, from prison.cpp:2: /usr/include/c++/11/bits/stl_deque.h:2265:5: note: candidate: 'template<class _Tp, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::deque<_Tp, _Alloc>&, const std::deque<_Tp, _Alloc>&)' (rewritten) 2265 | operator<=>(const deque<_Tp, _Alloc>& __x, const deque<_Tp, _Alloc>& __y) | ^~~~~~~~ /usr/include/c++/11/bits/stl_deque.h:2265:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::deque<_Tp, _Alloc>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/vector:67, from /usr/include/c++/11/queue:61, from prison.cpp:2: /usr/include/c++/11/bits/stl_vector.h:1910:5: note: candidate: 'template<class _Tp, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)' (rewritten) 1910 | operator<=>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) | ^~~~~~~~ /usr/include/c++/11/bits/stl_vector.h:1910:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/11/string:48, from /usr/include/c++/11/bits/locale_classes.h:40, from /usr/include/c++/11/bits/ios_base.h:41, from /usr/include/c++/11/ios:42, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from prison.cpp:1: /usr/include/c++/11/bits/stl_function.h:400:20: note: 'const std::pair<int, std::tuple<int, int, int> >' is not derived from 'const std::vector<_Tp, _Alloc>' 400 | { return __x < __y; } | ~~~~^~~~~ In file included from /usr/include/c++/11/queue:64, from prison.cpp:2: /usr/include/c++/11/bits/stl_queue.h:392:5: note: candidate: 'template<class _Tp, class _Seq> requires three_way_comparable<_Seq, std::partial_ordering> std::compare_three_way_result_t<_Seq> std::operator<=>(const std::queue<_Tp, _Seq>&, const std::queue<_Tp, _Seq>&)' (rewritt