#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 | #63372346 | Utilizator | |
| Fișier | dijkstra.cpp | Dimensiune | 890 B |
| Data încărcării | 28 Februarie 2026, 14:18 | Scor/rezultat | Eroare de compilare |
dijkstra.cpp: In function 'int main()': dijkstra.cpp:22:14: error: expected unqualified-id before '[' token auto [dist,nod]=pq.top(); ^ dijkstra.cpp:24:12: error: 'dist' was not declared in this scope if(dist>d[nod]) continue; ^ dijkstra.cpp:24:19: error: 'nod' was not declared in this scope if(dist>d[nod]) continue; ^ dijkstra.cpp:25:18: error: expected unqualified-id before '[' token for(auto [v,c]: adj[nod]){ ^ dijkstra.cpp:25:18: error: expected ';' before '[' token dijkstra.cpp:25:19: error: 'v' was not declared in this scope for(auto [v,c]: adj[nod]){ ^ dijkstra.cpp:25:21: error: 'c' was not declared in this scope for(auto [v,c]: adj[nod]){ ^ dijkstra.cpp: In lambda function: dijkstra.cpp:25:23: error: expected '{' before ':' token for(auto [v,c]: adj[nod]){ ^ dijkstra.cpp: In function 'int main()': dijkstra.cpp:25:23: error: expected ';' before ':' token dijkstra.cpp:25:23: error: expected primary-expression before ':' token dijkstra.cpp:25:23: error: expected ')' before ':' token dijkstra.cpp:25:23: error: expected primary-expression before ':' token dijkstra.cpp:25:23: error: expected ';' before ':' token dijkstra.cpp:37:1: error: expected '}' at end of input } ^ dijkstra.cpp:37:1: error: expected '}' at end of input In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, 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_heap.h: In instantiation of 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Distance = int; _Tp = std::pair<int, int>; _Compare = std::greater<int>]': /usr/include/c++/4.8/bits/stl_heap.h:448:15: required from 'void std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Compare = std::greater<int>]' /usr/include/c++/4.8/bits/stl_queue.h:411:48: required from 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&) [with _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::greater<int>]' dijkstra.cpp:19:72: required from here /usr/include/c++/4.8/bits/stl_heap.h:313:40: error: no match for call to '(std::greater<int>) (std::pair<int, int>&, std::pair<int, int>&)' *(__first + (__secondChild - 1)))) ^ In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, 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_function.h:222:12: note: candidate is: struct greater : public binary_function<_Tp, _Tp, bool> ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = int] operator()(const _Tp& __x, const _Tp& __y) const ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: no known conversion for argument 1 from 'std::pair<int, int>' to 'const int&' In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, 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_heap.h: In instantiation of 'void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Distance = int; _Tp = std::pair<int, int>; _Compare = std::greater<int>]': /usr/include/c++/4.8/bits/stl_heap.h:222:58: required from 'void std::push_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Compare = std::greater<int>]' /usr/include/c++/4.8/bits/stl_queue.h:507:41: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::greater<int>; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::pair<int, int>]' dijkstra.cpp:20:18: required from here /usr/include/c++/4.8/bits/stl_heap.h:183:47: error: no match for call to '(std::greater<int>) (std::pair<int, int>&, std::pair<int, int>&)' && __comp(*(__first + __parent), __value)) ^ In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, 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_function.h:222:12: note: candidate is: struct greater : public binary_function<_Tp, _Tp, bool> ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = int] operator()(const _Tp& __x, const _Tp& __y) const ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: no known conversion for argument 1 from 'std::pair<int, int>' to 'const 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ă.