#4357
Oxford
Premierul Marii Britanii, Rishi Sunak, a decis să reorganizeze structura administrativă a comitatului Oxfordshire. În Oxfordshire sunt prezente N
orașe numerotate de la 1
la N
, conectate prin M
autostrăzi (drumuri unidirecționale ce conectează două orașe). Rishi a hotărât ca toate orașele cu proprietatea că cetățenii tuturor celorlalte orașe pot ajunge în ele prin intermediul autostrăzilor să devină reședințe. Deoarece numărul de orașe și autostrăzi din Oxfordshire este foarte mare, Rishi vă cere ajutorul în rezolvarea a două probleme cheie.
1. Care sunt indicii orașelor reședință din Oxfordshire.
2. Care este distanța minimă de la fiecare oraș până la cea mai apropiată reședință de acel oraș.
Info-Oltenia 2023, individual 11-12
Problema | Oxford | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
Id soluție | #54567742 | Utilizator | |
Fișier | oxford.cpp | Dimensiune | 4.15 KB |
Data încărcării | 02 Decembrie 2024, 18:14 | Scor / rezultat | Eroare de compilare |
oxford.cpp: In function 'std::vector<int> multiSourceDijkstra(int, const std::vector<std::vector<std::pair<int, int> > >&, const std::vector<int>&)': oxford.cpp:55:67: error: wrong number of template arguments (0, should be 1) priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq; ^ 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from oxford.cpp:1: /usr/include/c++/4.8/bits/stl_function.h:222:12: error: provided for 'template<class _Tp> struct std::greater' struct greater : public binary_function<_Tp, _Tp, bool> ^ oxford.cpp:55:68: error: template argument 3 is invalid priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq; ^ oxford.cpp:55:73: error: invalid type in declaration before ';' token priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq; ^ oxford.cpp:60:12: error: request for member 'emplace' in 'pq', which is of non-class type 'int' pq.emplace(0, source); ^ oxford.cpp:63:16: error: request for member 'empty' in 'pq', which is of non-class type 'int' while (!pq.empty()) { ^ oxford.cpp:64:14: error: expected unqualified-id before '[' token auto [currentDistance, node] = pq.top(); ^ oxford.cpp:65:12: error: request for member 'pop' in 'pq', which is of non-class type 'int' pq.pop(); ^ oxford.cpp:67:13: error: 'currentDistance' was not declared in this scope if (currentDistance > distances[node]) continue; ^ oxford.cpp:67:41: error: 'node' was not declared in this scope if (currentDistance > distances[node]) continue; ^ oxford.cpp:69:20: error: expected unqualified-id before '[' token for (auto& [neighbor, weight] : graph[node]) { ^ oxford.cpp:69:20: error: expected ';' before '[' token oxford.cpp:69:21: error: 'neighbor' was not declared in this scope for (auto& [neighbor, weight] : graph[node]) { ^ oxford.cpp:69:31: error: 'weight' was not declared in this scope for (auto& [neighbor, weight] : graph[node]) { ^ oxford.cpp: In lambda function: oxford.cpp:69:39: error: expected '{' before ':' token for (auto& [neighbor, weight] : graph[node]) { ^ oxford.cpp: In function 'std::vector<int> multiSourceDijkstra(int, const std::vector<std::vector<std::pair<int, int> > >&, const std::vector<int>&)': oxford.cpp:69:39: error: expected ';' before ':' token oxford.cpp:69:39: error: expected primary-expression before ':' token oxford.cpp:69:39: error: expected ')' before ':' token oxford.cpp:69:39: error: expected primary-expression before ':' token oxford.cpp:69:39: error: expected ';' before ':' token oxford.cpp:139:1: error: expected '}' at end of input } ^ oxford.cpp:139:1: error: expected '}' at end of input oxford.cpp:139:1: warning: no return statement in function returning non-void [-Wreturn-type]
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Oxford 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ă.