#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 | #57814416 | Utilizator | |
| Fișier | roata.cpp | Dimensiune | 2.61 KB |
| Data încărcării | 20 Aprilie 2025, 11:31 | Scor/rezultat | Eroare de compilare |
roata.cpp: In function 'int main()': roata.cpp:29:27: error: wrong number of template arguments (0, should be 1) 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 roata.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> ^ roata.cpp:29:28: error: template argument 3 is invalid greater<>> pq; ^ roata.cpp:29:33: error: invalid type in declaration before ';' token greater<>> pq; ^ roata.cpp:45:12: error: request for member 'push' in 'pq', which is of non-class type 'int' pq.push({rotations[nextClient], {i, nextClient}}); ^ roata.cpp:53:16: error: request for member 'empty' in 'pq', which is of non-class type 'int' while (!pq.empty()) { ^ roata.cpp:55:25: error: request for member 'top' in 'pq', which is of non-class type 'int' auto event = pq.top(); ^ roata.cpp:56:12: error: request for member 'pop' in 'pq', which is of non-class type 'int' pq.pop(); ^ roata.cpp:74:16: error: request for member 'push' in 'pq', which is of non-class type 'int' pq.push({currentTime + rotations[nextClient], {cabinIdx, nextClient}}); ^ roata.cpp:82:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < exitOrder.size(); i++) { ^ roata.cpp:84:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (i < exitOrder.size() - 1) g << ' '; ^
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ă.