#1034
Una dintre atracţiile celebrului parc de distracţii Prater din Viena este Marea Roată Vieneză. Din ea se poate admira priveliştea întregii Viene.
Roata are n cabine, numerotate de la 1 la n în sens orar şi dispuse simetric pe circumferinţa roţii. Îmbarcarea clienţilor se face în cabina în care roata este tangentă cu solul, iar rotirea începe cu cabina 1 aflată în poziţia de îmbarcare şi se face în sens antiorar. Un client plăteşte pentru o rotire 1 EUR şi poate cumpăra un număr oarecare de rotiri.
Cei p clienţi care doresc utilizarea roţii trebuie să respecte următoarea procedură: clientul cu numărul de ordine i îşi cumpără un bilet pe care sunt înscrise numărul său de ordine şi numărul de rotiri ci, 1≤ i ≤ p, apoi se aşează la rând. Când în poziţia de îmbarcare este o cabină liberă sau se eliberează o cabină, roata se opreşte şi urcă următorul clientul. Un client coboară după ce se efectuează numărul de rotiri înscris pe bilet.
Să se scrie un program care, cunoscând numărul n de cabine al roţii, numărul p de clienţi, precum şi numărul de rotiri cumpărate de fiecare client, ci, 1≤ i ≤ p, să calculeze:
OJI 2012, clasa a IX-a
| Problema | Roata | Operații I/O |
roata.in/roata.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 2 MB
|
| Id soluție | #63267477 | Utilizator | |
| Fișier | roata.cpp | Dimensiune | 999 B |
| Data încărcării | 24 Februarie 2026, 10:59 | Scor/rezultat | Eroare de compilare |
roata.cpp: In function 'int main()': roata.cpp:33:31: 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}]' heap.push({c[i], i, i}); ^ roata.cpp:40:14: error: expected unqualified-id before '[' token auto [moment, id, cab] = heap.top(); ^ roata.cpp:43:14: error: 'id' was not declared in this scope g << id << " "; ^ roata.cpp:44:24: error: 'cab' was not declared in this scope ultimaCabina = cab; ^ roata.cpp:48:24: error: 'moment' was not declared in this scope heap.push({moment + c[urm], urm, cab}); ^ roata.cpp:48:50: 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>)' heap.push({moment + c[urm], urm, cab}); ^ roata.cpp:48:50: 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 roata.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 Roata 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ă.