제출 #1362757

#제출 시각아이디문제언어결과실행 시간메모리
1362757opeleklanos은하철도 (APIO24_train)C++20
컴파일 에러
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#include "train.h"

#define ll long long
#define INF (ll)1000000000000000000

struct route{
    ll t1;
    ll t0;
    ll from;
    ll dest;
    ll cost;
    ll totalCost;
};

vector<vector<ll>> adj;

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){

    adj.assign(N, {});

    vector<route> paths;
    for(ll i = 0; i<M; i++){
        adj[X[i]].push_back(i);
        adj[Y[i]].push_back(i);
        paths.push_back({B[i], A[i], X[i], Y[i], C[i], INF});
    }


    for(ll i = 0; i<M; i++){
        if(paths[i].from == 0) paths[i].totalCost = paths[i].cost;
    }

    sort(paths.begin(), paths.end());

    for(ll i = 0; i<M; i++){
        for(auto j : adj[paths[i].from]){
            if(paths[j].dest == paths[i].from && paths[j].t1 <= paths[i].t0){
                paths[i].totalCost = min(paths[i].totalCost, paths[j].totalCost + paths[i].cost);
            }
        }
    }

    ll ans = INF;
    for(ll i = 0; i<M; i++){
        if(paths[i].dest == N-1) ans = min(ans, paths[i].totalCost);
    }

    return ans;
}

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

In file included from /usr/include/c++/13/bits/stl_algobase.h:71,
                 from /usr/include/c++/13/string:51,
                 from /usr/include/c++/13/bits/locale_classes.h:40,
                 from /usr/include/c++/13/bits/ios_base.h:41,
                 from /usr/include/c++/13/ios:44,
                 from /usr/include/c++/13/ostream:40,
                 from /usr/include/c++/13/iostream:41,
                 from train.cpp:1:
/usr/include/c++/13/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Iter_less_iter::operator()(_Iterator1, _Iterator2) const [with _Iterator1 = __gnu_cxx::__normal_iterator<route*, std::vector<route> >; _Iterator2 = __gnu_cxx::__normal_iterator<route*, std::vector<route> >]':
/usr/include/c++/13/bits/stl_algo.h:1819:14:   required from 'constexpr void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1859:25:   required from 'constexpr void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1950:31:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:4861:18:   required from 'constexpr void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<route*, vector<route> >]'
train.cpp:39:9:   required from here
/usr/include/c++/13/bits/predefined_ops.h:45:23: error: no match for 'operator<' (operand types are 'route' and 'route')
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
In file included from /usr/include/c++/13/string:48:
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> constexpr std::__detail::__synth3way_t<_IteratorR, _IteratorL> __gnu_cxx::operator<=>(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)' (reversed)
 1189 |     operator<=>(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:45:23: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note: candidate: 'template<class _Iterator, class _Container> constexpr std::__detail::__synth3way_t<_Iterator> __gnu_cxx::operator<=>(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)' (rewritten)
 1208 |     operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:45:23: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
/usr/include/c++/13/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Val_less_iter::operator()(_Value&, _Iterator) const [with _Value = route; _Iterator = __gnu_cxx::__normal_iterator<route*, std::vector<route> >]':
/usr/include/c++/13/bits/stl_algo.h:1799:20:   required from 'constexpr void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Val_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1827:36:   required from 'constexpr void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1859:25:   required from 'constexpr void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1950:31:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:4861:18:   required from 'constexpr void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<route*, vector<route> >]'
train.cpp:39:9:   required from here
/usr/include/c++/13/bits/predefined_ops.h:98:22: error: no match for 'operator<' (operand types are 'route' and 'route')
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> constexpr std::__detail::__synth3way_t<_IteratorR, _IteratorL> __gnu_cxx::operator<=>(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)' (reversed)
 1189 |     operator<=>(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:98:22: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note: candidate: 'template<class _Iterator, class _Container> constexpr std::__detail::__synth3way_t<_Iterator> __gnu_cxx::operator<=>(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)' (rewritten)
 1208 |     operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:98:22: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/usr/include/c++/13/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<route*, std::vector<route> >; _Value = route]':
/usr/include/c++/13/bits/stl_heap.h:140:48:   required from 'constexpr void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Distance = long int; _Tp = route; _Compare = __gnu_cxx::__ops::_Iter_less_val]'
/usr/include/c++/13/bits/stl_heap.h:247:23:   required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Distance = long int; _Tp = route; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_heap.h:356:22:   required from 'constexpr void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1635:23:   required from 'constexpr void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1910:25:   required from 'constexpr void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1926:27:   required from 'constexpr void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:1947:25:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<route*, vector<route> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/13/bits/stl_algo.h:4861:18:   required from 'constexpr void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<route*, vector<route> >]'
train.cpp:39:9:   required from here
/usr/include/c++/13/bits/predefined_ops.h:69:22: error: no match for 'operator<' (operand types are 'route' and 'route')
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> constexpr std::__detail::__synth3way_t<_IteratorR, _IteratorL> __gnu_cxx::operator<=>(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)' (reversed)
 1189 |     operator<=>(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1189:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:69:22: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note: candidate: 'template<class _Iterator, class _Container> constexpr std::__detail::__synth3way_t<_Iterator> __gnu_cxx::operator<=>(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)' (rewritten)
 1208 |     operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1208:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/predefined_ops.h:69:22: note:   'route' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~