Submission #1123176

#TimeUsernameProblemLanguageResultExecution timeMemory
1123176razivoThe short shank; Redemption (BOI21_prison)C++20
Compilation error
0 ms0 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