#3446
Marian se află în galaxia OJI-2020 și este anul 11235. În această galaxie există N planete diferite și M canale bidirecţionale de transport de tipul (x, y, t) care îţi permit să te deplasezi de pe planeta x pe planeta y (sau invers) în t secunde.
Dar Marian este un adevărat inginer și, pentru că i se pare foarte ineficientă această metodă de transport, a dezvoltat un dispozitiv care îți permite teleportarea de pe o planetă x pe orice altă planetă y în P secunde cu condiţia că ai putea ajunge pornind de pe planeta x pe planeta y folosind maxim L canale de transport.
Acest dispozitiv este momentan doar un prototip, așa că nu îl poate folosi mai mult de K ori. Marian se află pe planeta 1 și te roagă să îi spui care e timpul minim necesar pentru a ajunge pe planeta N.
Să se scrie un program care calculează timpul minim necesar pentru a ajunge pe planeta N pornind de pe planeta 1.
OJI 2020, clasele XI-XII
| Problema | Ateleport | Operații I/O |
ateleport.in/ateleport.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
| Id soluție | #55191352 | Utilizator | |
| Fișier | ateleport.cpp | Dimensiune | 2.28 KB |
| Data încărcării | 04 Ianuarie 2025, 23:11 | Scor/rezultat | Eroare de compilare |
ateleport.cpp: In function 'int main()': ateleport.cpp:56:24: error: converting to 'std::priority_queue<std::tuple<long long int, int, int>, std::vector<std::tuple<long long int, int, int> >, std::greater<std::tuple<long long int, int, int> > >::value_type {aka std::tuple<long long int, int, int>}' from initializer list would use explicit constructor 'constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {long long int, int, int}; <template-parameter-2-2> = void; _Elements = {long long int, int, int}]' pq.push({0LL, 1, 0}); ^ ateleport.cpp:60:14: error: expected unqualified-id before '[' token auto [cost, u, used] = pq.top(); ^ ateleport.cpp:62:12: error: 'cost' was not declared in this scope if(cost > distCost[u][used]) ^ ateleport.cpp:62:28: error: 'u' was not declared in this scope if(cost > distCost[u][used]) ^ ateleport.cpp:62:31: error: 'used' was not declared in this scope if(cost > distCost[u][used]) ^ ateleport.cpp:64:12: error: 'u' was not declared in this scope if(u == N){ ^ ateleport.cpp:65:19: error: 'cost' was not declared in this scope ans = cost; ^ ateleport.cpp:68:30: error: 'u' was not declared in this scope for(auto &edge : adj[u]){ ^ ateleport.cpp:71:28: error: 'used' was not declared in this scope if(distCost[v][used] > cost + c){ ^ ateleport.cpp:71:36: error: 'cost' was not declared in this scope if(distCost[v][used] > cost + c){ ^ ateleport.cpp:73:53: error: no matching function for call to 'std::priority_queue<std::tuple<long long int, int, int>, std::vector<std::tuple<long long int, int, int> >, std::greater<std::tuple<long long int, int, int> > >::push(<brace-enclosed initializer list>)' pq.push({distCost[v][used], v, used}); ^ ateleport.cpp:73: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 ateleport.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::tuple<long long int, int, int>; _Sequence = std::vector<std::tuple<long long int, int, int> >; _Compare = std::greater<std::tuple<long long int, int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::tuple<long long int, 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::tuple<long long int, 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::tuple<long long int, int, int>; _Sequence = std::vector<std::tuple<long long int, int, int> >; _Compare = std::greater<std::tuple<long long int, int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::tuple<long long int, 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::tuple<long long int, int, int>, std::vector<std::tuple<long long int, int, int> >, std::greater<std::tuple<long long int, int, int> > >::value_type&& {aka std::tuple<long long int, int, int>&&}' ateleport.cpp:76:12: error: 'used' was not declared in this scope if(used < K){ ^ ateleport.cpp:77:35: error: 'u' was not declared in this scope for(auto v : teleport[u]){ ^ ateleport.cpp:78:42: error: 'cost' was not declared in this scope if(distCost[v][used+1] > cost + P){ ^ ateleport.cpp:80:61: error: no matching function for call to 'std::priority_queue<std::tuple<long long int, int, int>, std::vector<std::tuple<long long int, int, int> >, std::greater<std::tuple<long long int, int, int> > >::push(<brace-enclosed initializer list>)' pq.push({distCost[v][used+1], v, used+1}); ^ ateleport.cpp:80:61: 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 ateleport.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::tuple<long long int, int, int>; _Sequence = std::vector<std::tuple<long long int, int, int> >; _Compare = std::greater<std::tuple<long long int, int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::tuple<long long int, 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::tuple<long long int, 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::tuple<long long int, int, int>; _Sequence = std::vector<std::tuple<long long int, int, int> >; _Compare = std::greater<std::tuple<long long int, int, int> >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = std::tuple<long long int, 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::tuple<long long int, int, int>, std::vector<std::tuple<long long int, int, int> >, std::greater<std::tuple<long long int, int, int> > >::value_type&& {aka std::tuple<long long int, int, int>&&}'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Ateleport 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ă.