#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 | #64176361 | Utilizator | |
| Fișier | roata.cpp | Dimensiune | 1.12 KB |
| Data încărcării | 21 Aprilie 2026, 18:01 | Scor/rezultat | Eroare de compilare |
roata.cpp: In function ‘int main()’: roata.cpp:25:17: error: wrong number of template arguments (0, should be 1) 25 | greater<> | ^ In file included from /usr/include/c++/13/string:49, from /usr/include/c++/13/bitset:52, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:52, from roata.cpp:1: /usr/include/c++/13/bits/stl_function.h:393:12: note: provided for ‘template<class _Tp> struct std::greater’ 393 | struct greater : public binary_function<_Tp, _Tp, bool> | ^~~~~~~ roata.cpp:26:5: error: template argument 3 is invalid 26 | > pq; | ^ roata.cpp:32:12: error: request for member ‘emplace’ in ‘pq’, which is of non-class type ‘int’ 32 | pq.emplace(c[idx], i, idx); | ^~~~~~~ roata.cpp:38:16: error: request for member ‘empty’ in ‘pq’, which is of non-class type ‘int’ 38 | while (!pq.empty()) { | ^~~~~ roata.cpp:39:14: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 39 | auto [time, cabin, cust] = pq.top(); | ^ roata.cpp:39:39: error: request for member ‘top’ in ‘pq’, which is of non-class type ‘int’ 39 | auto [time, cabin, cust] = pq.top(); | ^~~ roata.cpp:40:12: error: request for member ‘pop’ in ‘pq’, which is of non-class type ‘int’ 40 | pq.pop(); | ^~~ roata.cpp:46:16: error: request for member ‘emplace’ in ‘pq’, which is of non-class type ‘int’ 46 | pq.emplace(time + c[idx], cabin, idx); | ^~~~~~~
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ă.