#588
Se dă un graf orientat ponderat – în care fiecare arc are asociat un cost, număr natural strict pozitiv, și un nod p. Să se determine, folosind algoritmul lui Dijkstra, costul minim al drumului de la p la fiecare nod al grafului.
| Problema | Dijkstra | Operații I/O |
dijkstra.in/dijkstra.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #63316874 | Utilizator | |
| Fișier | dijkstra.cpp | Dimensiune | 1.38 KB |
| Data încărcării | 26 Februarie 2026, 08:21 | Scor/rezultat | Eroare de compilare |
dijkstra.cpp: In function 'void dijkstra(int)': dijkstra.cpp:44:26: error: no match for 'operator-' (operand type is 'std::vector<long long int>') pq.push({-cost{neighbour, neighbour}); ^ dijkstra.cpp:44:26: note: candidates are: In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:327:5: note: template<class _Iterator> typename std::reverse_iterator<_Iterator>::difference_type std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&) operator-(const reverse_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:327:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::reverse_iterator<_Iterator>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:379:5: note: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&) operator-(const reverse_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:379:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::reverse_iterator<_Iterator>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:1104:5: note: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_Iterator>&, const std::move_iterator<_IteratorR>&) operator-(const move_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::move_iterator<_Iterator>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:1111:5: note: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_Iterator>&, const std::move_iterator<_Iterator>&) operator-(const move_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1111:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::move_iterator<_Iterator>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/ccomplex:38:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/complex:354:5: note: template<class _Tp> std::complex<_Tp> std::operator-(const std::complex<_Tp>&, const std::complex<_Tp>&) operator-(const complex<_Tp>& __x, const complex<_Tp>& __y) ^ /usr/include/c++/4.8/complex:354:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::complex<_Tp>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/ccomplex:38:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/complex:363:5: note: template<class _Tp> std::complex<_Tp> std::operator-(const std::complex<_Tp>&, const _Tp&) operator-(const complex<_Tp>& __x, const _Tp& __y) ^ /usr/include/c++/4.8/complex:363:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::complex<_Tp>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/ccomplex:38:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/complex:372:5: note: template<class _Tp> std::complex<_Tp> std::operator-(const _Tp&, const std::complex<_Tp>&) operator-(const _Tp& __x, const complex<_Tp>& __y) ^ /usr/include/c++/4.8/complex:372:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: candidate expects 2 arguments, 1 provided pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/ccomplex:38:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/complex:449:5: note: template<class _Tp> std::complex<_Tp> std::operator-(const std::complex<_Tp>&) operator-(const complex<_Tp>& __x) ^ /usr/include/c++/4.8/complex:449:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::complex<_Tp>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/vector:65:0, from /usr/include/c++/4.8/bits/random.h:34, from /usr/include/c++/4.8/random:50, from /usr/include/c++/4.8/bits/stl_algo.h:65, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_bvector.h:208:3: note: std::ptrdiff_t std::operator-(const std::_Bit_iterator_base&, const std::_Bit_iterator_base&) operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) ^ /usr/include/c++/4.8/bits/stl_bvector.h:208:3: note: candidate expects 2 arguments, 1 provided In file included from /usr/include/c++/4.8/deque:64:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:67, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_deque.h:331:5: note: template<class _Tp, class _Ref, class _Ptr> typename std::_Deque_iterator<_Tp, _Ref, _Ptr>::difference_type std::operator-(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _Ref, _Ptr>&) operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, ^ /usr/include/c++/4.8/bits/stl_deque.h:331:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::_Deque_iterator<_Tp, _Ref, _Ptr>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/deque:64:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:67, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_deque.h:343:5: note: template<class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR> typename std::_Deque_iterator<_Tp, _Ref, _Ptr>::difference_type std::operator-(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _RefR, _PtrR>&) operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, ^ /usr/include/c++/4.8/bits/stl_deque.h:343:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::_Deque_iterator<_Tp, _Ref, _Ptr>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/valarray:587:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template<class _Dom1, class _Dom2> std::_Expr<std::_BinClos<std::__minus, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&) _DEFINE_EXPR_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/valarray:587:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template<class _Dom> std::_Expr<std::_BinClos<std::__minus, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&) _DEFINE_EXPR_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/valarray:587:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template<class _Dom> std::_Expr<std::_BinClos<std::__minus, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&) _DEFINE_EXPR_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: candidate expects 2 arguments, 1 provided pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/valarray:587:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template<class _Dom> std::_Expr<std::_BinClos<std::__minus, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray<typename _Dom::value_type>&) _DEFINE_EXPR_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/valarray:587:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template<class _Dom> std::_Expr<std::_BinClos<std::__minus, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const std::valarray<typename _Dom::value_type>&, const std::_Expr<_Dom1, typename _Dom1::value_type>&) _DEFINE_EXPR_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/bits/valarray_after.h:403:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::valarray<typename _Dom::value_type>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94:0, from dijkstra.cpp:1: /usr/include/c++/4.8/valarray:1168:1: note: template<class _Tp> std::_Expr<std::_BinClos<std::__minus, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const std::valarray<_Tp>&, const std::valarray<_Tp>&) _DEFINE_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/valarray:1168:1: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::valarray<_Tp>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94:0, from dijkstra.cpp:1: /usr/include/c++/4.8/valarray:1168:1: note: template<class _Tp> std::_Expr<std::_BinClos<std::__minus, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const std::valarray<_Tp>&, const _Tp&) _DEFINE_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/valarray:1168:1: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const std::valarray<_Tp>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:94:0, from dijkstra.cpp:1: /usr/include/c++/4.8/valarray:1168:1: note: template<class _Tp> std::_Expr<std::_BinClos<std::__minus, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const _Tp&, const std::valarray<_Tp>&) _DEFINE_BINARY_OPERATOR(-, __minus) ^ /usr/include/c++/4.8/valarray:1168:1: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: candidate expects 2 arguments, 1 provided pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:896:5: note: template<class _Iterator, class _Container> typename __gnu_cxx::__normal_iterator<_Iterator, _Container>::difference_type __gnu_cxx::operator-(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&) operator-(const __normal_iterator<_Iterator, _Container>& __lhs, ^ /usr/include/c++/4.8/bits/stl_iterator.h:896:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' pq.push({-cost{neighbour, neighbour}); ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:884:5: note: template<class _IteratorL, class _IteratorR, class _Container> decltype ((__lhs.base() - __rhs.base())) __gnu_cxx::operator-(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&) operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, ^ /usr/include/c++/4.8/bits/stl_iterator.h:884:5: note: template argument deduction/substitution failed: dijkstra.cpp:44:27: note: 'std::vector<long long int>' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' pq.push({-cost{neighbour, neighbour}); ^ dijkstra.cpp:44:31: error: expected '}' before '{' token pq.push({-cost{neighbour, neighbour}); ^ dijkstra.cpp:44:31: error: expected ')' before '{' token dijkstra.cpp:44:53: error: no matching function for call to 'std::priority_queue<std::pair<long long int, int> >::push(<brace-enclosed initializer list>)' pq.push({-cost{neighbour, neighbour}); ^ dijkstra.cpp:44:53: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:85, from dijkstra.cpp:1: /usr/include/c++/4.8/bits/stl_queue.h:496:7: note: void std::priority_queue<_Tp, _Sequence, _Compare>::push(const value_type&) [with _Tp = std::pair<long long int, int>; _Sequence = std::vector<std::pair<long long int, int>, std::allocator<std::pair<long long int, int> > >; _Compare = std::less<std::pair<long long int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<long long int, int>] push(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:496:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<long long int, int>&}' /usr/include/c++/4.8/bits/stl_queue.h:504:7: note: void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<long long int, int>; _Sequence = std::vector<std::pair<long long int, int>, std::allocator<std::pair<long long int, int> > >; _Compare = std::less<std::pair<long long int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<long long int, int>] push(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:504:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::priority_queue<std::pair<long long int, int> >::value_type&& {aka std::pair<long long int, int>&&}'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Dijkstra face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.