제출 #1181259

#제출 시각아이디문제언어결과실행 시간메모리
1181259KhoaDuy은하철도 (APIO24_train)C++20
컴파일 에러
0 ms0 KiB
#include "train.h"
#include<bits/stdc++.h>
//WORST PROBLEM EVER JKJLSDGKLJDGLKJHGHLFJD
using namespace std;
struct T{
    long long le=-1,ri=-1;
    long long sum=0;
};
T TT(T le,T ri){
    T pa;
    pa.sum=le.sum+ri.sum;
    return pa;
}
T Tid;
vector<T> seg;
long long init(long long le,long long ri){
    long long v=seg.size();
    seg.push_back(Tid);
    if(le==-1){
        seg[v].sum=ri;
    }
    else{
        seg[v]=TT(seg[le],seg[ri]);
        seg[v].le=le,seg[v].ri=ri;
    }
    return v;
}
long long build(long long TL,long long TR){
    if(TL==TR){
        return init(-1,0);
    }
    long long TM=((TL+TR)>>1);
    return init(build(TL,TM),build(TM+1,TR));
}
long long update(long long v,long long TL,long long TR,long long i){
    if(TL==TR){
        return init(-1,seg[v].sum+1);
    }
    long long TM=((TL+TR)>>1);
    if(i<=TM){
        return init(update(seg[v].le,TL,TM,i),seg[v].ri);
    }
    return init(seg[v].le,update(seg[v].ri,TM+1,TR,i));
}
T query(long long v,long long TL,long long TR,long long l,long long r){
    if(l>TR||r<TL){
        return Tid;
    }
    if(l<=TL&&TR<=r){
        return seg[v];
    }
    long long TM=((TL+TR)>>1);
    return TT(query(seg[v].le,TL,TM,l,r),query(seg[v].ri,TM+1,TR,l,r));
}
long long walk(long long vl,long long vr,long long TL,long long TR,long long k){
    if(TL==TR){
        return TL;
    }
    long long TM=((TL+TR)>>1);
    if(seg[seg[vr].le].sum-seg[seg[vl].le].sum>=k){
        return walk(seg[vl].le,seg[vr].le,TL,TM,k);
    }
    return walk(seg[vl].ri,seg[vr].ri,TM+1,TR,k-(seg[seg[vr].le].sum-seg[seg[vl].le].sum));
}
struct event{
    long long cmp,idxu,idxq;
};
bool cmp(event &a,event &b){
    if(a.cmp!=b.cmp){
        return (a.cmp<b.cmp);
    }
    if(a.idxu!=b.idxu){
        return (a.idxu<b.idxu);
    }
    return (a.idxq<b.idxq);
}
long long solve(int _n,int _m,int _w,vector<int> _t,vector<int> _x,vector<int> _y,vector<int> _a,vector<int> _b,vector<int> _c,vector<int> _l,vector<int> _r){
    long long n=_n,m=_m,w=_w;
    vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
    if(m==0){
        return -1;
    }
    bool app[m]={false};
    vector<long long> root(w+1);
    vector<long long> val(w);
    vector<event> que;
    for(long long i=0;i<m;i++){
        que.push_back({a[i],-1,i});
        que.push_back({b[i],-2,i});
    }
    for(long long i=0;i<w;i++){
        que.push_back({r[i],i,-1});
    }
    sort(que.begin(),que.end(),cmp);
    for(long long i=0;i<que.size();i++){
        if(que[i].idxu>=0){
            val[que[i].idxu]=i;
        }
    }
    vector<pair<long long,long long>> order(w+1);
    order[0]={-1,-1};
    for(long long i=0;i<w;i++){
        order[i+1]={l[i],i};
    }
    sort(order.begin(),order.end());
    root[0]=build(0,que.size()-1);
    for(long long i=1;i<=w;i++){
        root[i]=update(root[i-1],0,que.size()-1,val[order[i].second]);
    }
    long long DP[m+1];
    memset(DP,-1,sizeof(DP));
    DP[m]=0;
    vector<set<pair<long long,long long>>> se(n);
    se[0].insert({-1,m});
    bool del[m+1]={false};
    vector<vector<pair<long long,long long>>> group(que.size());
    x.push_back(0);
    y.push_back(0);
    a.push_back(-1);
    b.push_back(-1);
    c.push_back(0);
    long long ans=-1;
    bool trace=false;
    for(long long i=0;i<que.size();i++){
        for(pair<long long,long long> &x:group[i]){
            if(!del[x.first]&&!del[x.second]){
                long long u=y[x.first];
                long long idx=x.first;
                while(true){
                    del[idx]=true;
                    set<pair<long long,long long>>::iterator it,itr;
                    it=se[u].find({b[idx],idx});
                    itr=it,itr++;
                    idx=(*itr).second;
                    se[u].erase(it);
                    itr=se[u].find({b[idx],idx});
                    if(itr==se[u].begin()){
                        break;
                    }
                    it=itr,it--;
                    idx=(*it).second;
                    long long idx2=(*itr).second;
                    long long cnt=(DP[idx2]-DP[idx]+t[u]-1)/t[u];
                    long long le=lower_bound(order.begin(),order.end(),make_pair(b[idx]+1,-1))-order.begin()-1;
                    long long ri=upper_bound(order.begin(),order.end(),make_pair(b[idx2],(long long)que.size()+1))-order.begin()-1;
                    if(seg[root[ri]].sum-seg[root[le]].sum<cnt){
                        break;
                    }
                    if(DP[idx2]>=DP[idx]){
                        continue;
                    }
                    long long tim=walk(root[le],root[ri],0,que.size()-1,cnt);
                    if(tim<=i){
                        continue;
                    }
                    group[tim].push_back({idx,idx2});
                    break;
                }
            }
        }
        if(que[i].idxq!=-1){
            if(!app[que[i].idxq]){
                app[que[i].idxq]=true;
                long long idx,idx2=que[i].idxq;
                if(se[x[idx2]].empty()){
                    continue;
                }
                idx=(*se[x[idx2]].begin()).second;
                long long le=lower_bound(order.begin(),order.end(),make_pair(b[idx]+1,-1))-order.begin()-1;
                long long ri=upper_bound(order.begin(),order.end(),make_pair(a[idx2]-1,(long long)que.size()+1))-order.begin()-1;
                DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
                if(y[idx2]==n-1){
                    long long need=upper_bound(order.begin(),order.end(),make_pair(b[idx2],(long long)que.size()+1))-order.begin();
                    need=order.size()-need;
                    if(trace){
                        ans=min(ans,DP[idx2]+1LL*need*t[y[idx2]]);
                    }
                    else{
                        ans=DP[idx2]+1LL*need*t[y[idx2]];
                    }
                    trace=true;
                }
            }
            else{
                long long idx2=que[i].idxq,idx;
                if(DP[idx2]==-1){
                    continue;
                }
                long long u=y[idx2];
                se[u].insert({b[idx2],idx2});
                set<pair<long long,long long>>::iterator it,itr;
                itr=se[u].find({b[idx2],idx2});
                if(itr==se[u].begin()){
                    continue;
                }
                it=itr,it--;
                idx=(*it).second;
                idx2=(*itr).second;
                long long cnt=(DP[idx2]-DP[idx]+t[u]-1)/t[u];
                long long le=lower_bound(order.begin(),order.end(),make_pair(b[idx]+1,-1))-order.begin()-1;
                long long ri=upper_bound(order.begin(),order.end(),make_pair(b[idx2],(long long)que.size()+1))-order.begin()-1;
                bool flag=false;
                if(seg[root[ri]].sum-seg[root[le]].sum<cnt){
                    continue;
                }
                if(DP[idx2]>=DP[idx]){
                    flag=true;
                }
                else{
                    long long tim=walk(root[le],root[ri],0,que.size()-1,cnt);
                    if(tim<=i){
                        flag=true;
                    }
                    else{
                        group[tim].push_back({idx,idx2});
                    }
                }
                if(flag){
                    while(true){
                        del[idx]=true;
                        set<pair<long long,long long>>::iterator it,itr;
                        it=se[u].find({b[idx],idx});
                        itr=it,itr++;
                        idx=(*itr).second;
                        se[u].erase(it);
                        itr=se[u].find({b[idx],idx});
                        if(itr==se[u].begin()){
                            break;
                        }
                        it=itr,it--;
                        idx=(*it).second;
                        long long idx2=(*itr).second;
                        long long cnt=(DP[idx2]-DP[idx]+t[u]-1)/t[u];
                        long long le=lower_bound(order.begin(),order.end(),make_pair(b[idx]+1,-1))-order.begin()-1;
                        long long ri=upper_bound(order.begin(),order.end(),make_pair(b[idx2],(long long)que.size()+1))-order.begin()-1;
                        if(seg[root[ri]].sum-seg[root[le]].sum<cnt){
                            break;
                        }
                        if(DP[idx2]>=DP[idx]){
                            continue;
                        }
                        long long tim=walk(root[le],root[ri],0,que.size()-1,cnt);
                        if(tim<=i){
                            continue;
                        }
                        group[tim].push_back({idx,idx2});
                        break;
                    }
                }
            }
        }
    }
    if(!trace){
        return -1;
    }
    return ans;
}
/*signed main() {
  int N, M, W;
  assert(3 == scanf("%d %d %d", &N, &M, &W));
  std::vector<int> t(N);
  std::vector<int> x(M);
  std::vector<int> y(M);
  std::vector<int> a(M);
  std::vector<int> b(M);
  std::vector<int> c(M);
  std::vector<int> l(W);
  std::vector<int> r(W);
  for (int i = 0; i < N; i++)
    assert(1 == scanf("%d", &t[i]));
  for (int i = 0; i < M; i++)
    assert(5 == scanf("%d %d %d %d %d", &x[i], &y[i], &a[i], &b[i], &c[i]));
  for (int i = 0; i < W; i++)
    assert(2 == scanf("%d %d", &l[i], &r[i]));
  printf("%lld", solve(N, M, W, t, x, y, a, b, c, l, r));
}*/

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

train.cpp: In function 'long long int solve(int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:79:25: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                         ^~
train.cpp:79:30: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                              ^~
train.cpp:79:35: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                   ^~
train.cpp:79:40: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                        ^~
train.cpp:79:45: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                             ^~
train.cpp:79:50: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                                  ^~
train.cpp:79:55: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                                       ^~
train.cpp:79:60: error: conversion from 'vector<int>' to non-scalar type 'vector<long long int>' requested
   79 |     vector<long long> t=_t,x=_x,y=_y,a=_a,b=_b,c=_c,l=_l,r=_r;
      |                                                            ^~
train.cpp:171:60: error: no matching function for call to 'max(int, long long int)'
  171 |                 DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
      |                                                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
train.cpp:171:60: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  171 |                 DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
      |                                                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
train.cpp:171:60: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  171 |                 DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
      |                                                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
train.cpp:171:60: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  171 |                 DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
      |                                                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
train.cpp:171:60: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  171 |                 DP[idx2]=DP[idx]+c[idx2]+1LL*t[x[idx2]]*max(0,query(root[ri],0,que.size()-1,0,i).sum-query(root[le],0,que.size()-1,0,i).sum);
      |                                                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Iter_less_val::operator()(_Iterator, _Value&) const [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<long long int, long long int>*, std::vector<std::pair<long long int, long long int> > >; _Value = const std::pair<long long int, int>]':
/usr/include/c++/11/bits/stl_algobase.h:1464:14:   required from 'constexpr _ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::pair<long long int, long long int>*, std::vector<std::pair<long long int, long long int> > >; _Tp = std::pair<long long int, int>; _Compare = __gnu_cxx::__ops::_Iter_less_val]'
/usr/include/c++/11/bits/stl_algobase.h:1499:32:   required from 'constexpr _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::pair<long long int, long long int>*, std::vector<std::pair<long long int, long long int> > >; _Tp = std::pair<long long int, int>]'
train.cpp:144:45:   required from here
/usr/include/c++/11/bits/predefined_ops.h:69:22: error: no match for 'operator<' (operand types are 'std::pair<long long int, long long int>' and 'const std::pair<long long int, int>')
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_iterator.h:1129:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> constexpr std::__detail::__synth3way_t<_IteratorR, _IteratorL> __gnu_cxx::operator<=>(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' (reversed)
 1129 |     operator<=>(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_iterator.h:1129:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/regex:63,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:110,
                 from train.cpp:2:
/usr/include/c++/11/bits/regex.h:1244:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Alloc> auto std::__cxx11::operator<=>(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' (reversed)
 1244 |     operator<=>(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/regex.h:1244:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/regex:63,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:110,
                 from train.cpp:2:
/usr/include/c++/11/bits/regex.h:1412:5: note: candidate: 'template<class _Bi_iter> auto std::__cxx11::operator<=>(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' (reversed)
 1412 |     operator<=>(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/regex.h:1412:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/regex:63,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:110,
                 from train.cpp:2:
/usr/include/c++/11/bits/regex.h:1585:5: note: candidate: 'template<class _Bi_iter> auto std::__cxx11::operator<=>(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' (reversed)
 1585 |     operator<=>(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/regex.h:1585:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::reverse_iterator<_IteratorL>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::move_iterator<_IteratorL>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
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/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from train.cpp:2:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
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/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from train.cpp:2:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/functional:54,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from train.cpp:2:
/usr/include/c++/11/tuple:1557:5: note: candidate: 'template<class ... _Tps, class ... _Ups> constexpr std::common_comparison_category_t<decltype (std::__detail::__synth3way(declval<_Tps&>(), declval<_Ups&>()))...> std::operator<=>(const std::tuple<_Tps ...>&, const std::tuple<_UTypes ...>&)' (reversed)
 1557 |     operator<=>(const tuple<_Tps...>& __t, const tuple<_Ups...>& __u)
      |     ^~~~~~~~
/usr/include/c++/11/tuple:1557:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::tuple<_Tps ...>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/locale_conv.h:41,
                 from /usr/include/c++/11/locale:43,
                 from /usr/include/c++/11/iomanip:43,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:72,
                 from train.cpp:2:
/usr/include/c++/11/bits/unique_ptr.h:895:5: note: candidate: 'template<class _Tp, class _Dp, class _Up, class _Ep>  requires  three_way_comparable_with<typename std::unique_ptr<_Tp, _Dp>::pointer, typename std::unique_ptr<_Up, _Ep>::pointer, std::partial_ordering> std::compare_three_way_result_t<typename std::unique_ptr<_Tp, _Dp>::pointer, typename std::unique_ptr<_Up, _Ep>::pointer> std::operator<=>(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)' (reversed)
  895 |     operator<=>(const unique_ptr<_Tp, _Dp>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/unique_ptr.h:895:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/locale_conv.h:41,
                 from /usr/include/c++/11/locale:43,
                 from /usr/include/c++/11/iomanip:43,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:72,
                 from train.cpp:2:
/usr/include/c++/11/bits/unique_ptr.h:903:5: note: candidate: 'template<class _Tp, class _Dp>  requires  three_way_comparable<typename std::unique_ptr<_Tp, _Dp>::pointer, std::partial_ordering> std::compare_three_way_result_t<typename std::unique_ptr<_Tp, _Dp>::pointer> std::operator<=>(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)' (reversed)
  903 |     operator<=>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
      |     ^~~~~~~~
/usr/include/c++/11/bits/unique_ptr.h:903:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/shared_ptr.h:53,
                 from /usr/include/c++/11/memory:77,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:82,
                 from train.cpp:2:
/usr/include/c++/11/bits/shared_ptr_base.h:1422:5: note: candidate: 'template<class _Tp, class _Up, __gnu_cxx::_Lock_policy _Lp> std::strong_ordering std::operator<=>(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&)' (reversed)
 1422 |     operator<=>(const __shared_ptr<_Tp, _Lp>& __a,
      |     ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr_base.h:1422:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__shared_ptr<_Tp1, _Lp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/shared_ptr.h:53,
                 from /usr/include/c++/11/memory:77,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:82,
                 from train.cpp:2:
/usr/include/c++/11/bits/shared_ptr_base.h:1428:5: note: candidate: 'template<class _Tp, __gnu_cxx::_Lock_policy _Lp> std::strong_ordering std::operator<=>(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t)' (reversed)
 1428 |     operator<=>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr_base.h:1428:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::__shared_ptr<_Tp, _Lp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/memory:77,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:82,
                 from train.cpp:2:
/usr/include/c++/11/bits/shared_ptr.h:449:5: note: candidate: 'template<class _Tp, class _Up> std::strong_ordering std::operator<=>(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Tp>&)' (reversed)
  449 |     operator<=>(const shared_ptr<_Tp>& __a,
      |     ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:449:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::shared_ptr<_Tp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/memory:77,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:82,
                 from train.cpp:2:
/usr/include/c++/11/bits/shared_ptr.h:455:5: note: candidate: 'template<class _Tp> std::strong_ordering std::operator<=>(const std::shared_ptr<_Tp>&, std::nullptr_t)' (reversed)
  455 |     operator<=>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:455:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::shared_ptr<_Tp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:130,
                 from train.cpp:2:
/usr/include/c++/11/optional:1096:5: note: candidate: 'template<class _Tp, class _Up>  requires  three_way_comparable_with<_Up, _Tp, std::partial_ordering> constexpr std::compare_three_way_result_t<_IteratorL, _IteratorR> std::operator<=>(const std::optional<_Tp>&, const std::optional<_Up>&)' (reversed)
 1096 |     operator<=>(const optional<_Tp>& __x, const optional<_Up>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/optional:1096:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::optional<_Tp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:130,
                 from train.cpp:2:
/usr/include/c++/11/optional:1111:5: note: candidate: 'template<class _Tp> constexpr std::strong_ordering std::operator<=>(const std::optional<_Tp>&, std::nullopt_t)' (reversed)
 1111 |     operator<=>(const optional<_Tp>& __x, nullopt_t) noexcept
      |     ^~~~~~~~
/usr/include/c++/11/optional:1111:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::optional<_Tp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:130,
                 from train.cpp:2:
/usr/include/c++/11/optional:1253:5: note: candidate: 'template<class _Tp, class _Up>  requires !(__is_optional_v<_Up>) && (three_way_comparable_with<_Tp, _Up, std::partial_ordering>) constexpr std::compare_three_way_result_t<_IteratorL, _IteratorR> std::operator<=>(const std::optional<_Tp>&, const _Up&)' (reversed)
 1253 |     operator<=>(const optional<_Tp>& __x, const _Up& __v)
      |     ^~~~~~~~
/usr/include/c++/11/optional:1253:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'const std::pair<long long int, int>' is not derived from 'const std::optional<_Tp>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/stl_iterator.h:1146:5: note: candidate: 'template<class _Iterator, class _Container> constexpr std::__detail::__synth3way_t<_T1> __gnu_cxx::operator<=>(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' (rewritten)
 1146 |     operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_iterator.h:1146:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/regex:63,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:110,
                 from train.cpp:2:
/usr/include/c++/11/bits/regex.h:1072:5: note: candidate: 'template<class _BiIter> auto std::__cxx11::operator<=>(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)' (rewritten)
 1072 |     operator<=>(const sub_match<_BiIter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/11/bits/regex.h:1072:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.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_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   deduced conflicting types for parameter '_T2' ('long long int' and 'int')
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::reverse_iterator<_IteratorL>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::move_iterator<_IteratorL>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/vector:67,
                 from train.h:1,
                 from train.cpp:1:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::vector<_Tp, _Alloc>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
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/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from train.cpp:2:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
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/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from train.cpp:2:
/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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/tuple:39,
                 from /usr/include/c++/11/functional:54,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from train.cpp:2:
/usr/include/c++/11/array:282:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr std::__detail::__synth3way_t<_T1> std::operator<=>(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)' (rewritten)
  282 |     operator<=>(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b)
      |     ^~~~~~~~
/usr/include/c++/11/array:282:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::array<_Tp, _Nm>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/deque:67,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:68,
                 from train.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/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::deque<_Tp, _Alloc>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/list:63,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:79,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_list.h:2065:5: note: candidate: 'template<class _Tp, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&)' (rewritten)
 2065 |     operator<=>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_list.h:2065:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::__cxx11::list<_Tp, _Alloc>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/map:61,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:81,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_map.h:1484:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> std::__detail::__synth3way_t<std::pair<const _Key, _Tp> > std::operator<=>(const std::map<_Key, _Tp, _Compare, _Allocator>&, const std::map<_Key, _Tp, _Compare, _Allocator>&)' (rewritten)
 1484 |     operator<=>(const map<_Key, _Tp, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_map.h:1484:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::map<_Key, _Tp, _Compare, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/map:62,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:81,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_multimap.h:1149:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> std::__detail::__synth3way_t<std::pair<const _Key, _Tp> > std::operator<=>(const std::multimap<_Key, _Tp, _Compare, _Allocator>&, const std::multimap<_Key, _Tp, _Compare, _Allocator>&)' (rewritten)
 1149 |     operator<=>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_multimap.h:1149:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::multimap<_Key, _Tp, _Compare, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/queue:64,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:86,
                 from train.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>&)' (rewritten)
  392 |     operator<=>(const queue<_Tp, _Seq>& __x, const queue<_Tp, _Seq>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_queue.h:392:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::queue<_Tp, _Seq>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/set:61,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:87,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_set.h:1006:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::set<_Key, _Compare, _Allocator>&, const std::set<_Key, _Compare, _Allocator>&)' (rewritten)
 1006 |     operator<=>(const set<_Key, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_set.h:1006:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::set<_Key, _Compare, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/set:62,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:87,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_multiset.h:992:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::multiset<_Key, _Compare, _Allocator>&, const std::multiset<_Key, _Compare, _Allocator>&)' (rewritten)
  992 |     operator<=>(const multiset<_Key, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_multiset.h:992:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::multiset<_Key, _Compare, _Allocator>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/stack:61,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:89,
                 from train.cpp:2:
/usr/include/c++/11/bits/stl_stack.h:367: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::stack<_Tp, _Seq>&, const std::stack<_Tp, _Seq>&)' (rewritten)
  367 |     operator<=>(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/bits/stl_stack.h:367:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::stack<_Tp, _Seq>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/11/forward_list:38,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:104,
                 from train.cpp:2:
/usr/include/c++/11/bits/forward_list.h:1446:5: note: candidate: 'template<class _Tp, class _Alloc> std::__detail::__synth3way_t<_T1> std::operator<=>(const std::forward_list<_Tp, _Alloc>&, const std::forward_list<_Tp, _Alloc>&)' (rewritten)
 1446 |     operator<=>(const forward_list<_Tp, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/11/bits/forward_list.h:1446:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::forward_list<_Tp, _Alloc>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:133,
                 from train.cpp:2:
/usr/include/c++/11/variant:1246:5: note: candidate: 'template<class ... _Types>  requires (three_way_comparable<_Types, std::partial_ordering> && ...) constexpr std::common_comparison_category_t<typename std::__detail::__cmp3way_res_impl<_Types, _Types>::type ...> std::operator<=>(const std::variant<_Types ...>&, const std::variant<_Types ...>&)' (rewritten)
 1246 |     operator<=>(const variant<_Types...>& __v, const variant<_Types...>& __w)
      |     ^~~~~~~~
/usr/include/c++/11/variant:1246:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from train.h:1,
                 from train.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h:69:22: note:   'std::pair<long long int, long long int>' is not derived from 'const std::variant<_Types ...>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:142,
                 from train.cpp:2:
/usr/include/c++/11/coroutine:144:3: note: candidate: 'constexpr std::strong_ordering std::__n4861::operator<=>(std::__n4861::coroutine_handle<void>, std::__n4861::coroutine_handle<void>)' (rewritten)
  144 |   operator<=>(coroutine_handle<> __a, coroutine_handle<> __b) noexcept
      |   ^~~~~~~~
/usr/include/c++/11/coroutine:144:34: note:   no known conversion for argument 1 from 'std::pair<long long int, long long int>' to 'std::__n4861::coroutine_handle<void>'
  144 |   operator<=>(coroutine_handle<> __a, coroutine_handle<> __b) noexcept
      |               ~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/c++/11/bits/ios_base.h:46,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/cco