Detalii evaluare #63267477

Rezumat problemă

#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:

  • suma totală încasată de administratorul roţii de la clienţi;
  • ordinea în care coboară clienţii din roată;
  • numărul cabinei din care coboară ultimul client.

Detalii

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 Lightning MCqueen (DobreRares)
Fișier roata.cpp Dimensiune 999 B
Data încărcării 24 Februarie 2026, 10:59 Scor/rezultat Eroare de compilare

Evaluare

Mesaj 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>&&}'

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Roata face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.

Du-te sus!