Detalii evaluare #42798540

Rezumat problemă

#1098 Reteta

Mama mea este profesoară de informatică, dar îi place foarte mult să gătească. Recent am descoperit caietul ei de reţete, care arată foarte neobişnuit. Fiecare reţetă este scrisă pe un singur rând pe care sunt precizate produsele folosite, cantităţile, precum şi ordinea în care se execută operaţiile. De exemplu:
(unt 50 zahar 250 ou 4)5
ceea ce înseamnă că se amestecă 50 grame unt cu 250 grame zahăr şi cu 4 ouă timp de 5 minute. Pentru fiecare produs mama foloseşte întotdeauna aceeaşi unitate de măsură, aşa că unităţile de măsură nu mai sunt precizate. Numele produsului este scris întotdeauna cu litere mici, iar produsele şi cantităţile sunt separate prin spaţii (unul sau mai multe). Produsele care se amestecă împreună sunt încadrate între paranteze rotunde; după paranteza rotundă închisă este specificat timpul de preparare.

Evident, mama are şi reţeţe mai complicate:
(((zahar 100 ou 3)5 unt 100 nuca 200)4 (lapte 200 cacao 50 zahar 100) 3)20

Să traducem această reţetă: se amestecă 100 grame zahăr cu 3 ouă timp de cinci minute; apoi se adaugă 100 grame unt şi 200 grame nucă, amestecând totul încă 4 minute. Se amestecă 200 ml lapte cu 50 grame de cacao şi 100 grame zahăr timp de 3 minute, apoi se toarnă peste compoziţia precedentă şi se amestecă totul timp de 20 minute.

Observaţi că înainte sau după parantezele rotunde pot să apară sau nu spaţii.

Dată fiind o reţetă să se determine timpul total de preparare, precum şi cantităţile necesare din fiecare produs.

Detalii

Problema Reteta Operații I/O reteta.in/reteta.out
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #42798540 Utilizator Trifu Oscar (Morico)
Fișier reteta.cpp Dimensiune 1.95 KB
Data încărcării 17 Martie 2023, 14:04 Scor / rezultat 70 puncte

Evaluare


Mesaj compilare

reteta.cpp: In function 'int main()':
reteta.cpp:17:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i<=strlen(ret)-1; i++) {

                                   ^
reteta.cpp:18:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0; j<=strlen(ret); j++) {

                                     ^
reteta.cpp:24:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i<=strlen(ret); i++) {

                                 ^
reteta.cpp:28:52: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          while(isdigit(ret[++i]) && i<=strlen(ret)+1)

                                                    ^
reteta.cpp:37:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<=strlen(ret); ++i)

                               ^
reteta.cpp:49:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while(isdigit(ret[++i]) && i<=strlen(ret)+1)

                                                       ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde OK. 10 10
2 0 secunde OK. 10 10
3 0 secunde OK. 10 10
4 0.084 secunde Caught fatal signal 11 10 0
5 0.068 secunde OK. 10 10
6 0.092 secunde Caught fatal signal 11 10 0
7 Depășit Limita de timp depășită 10 0
8 0.04 secunde OK. 10 10
9 0.088 secunde OK. 10 10
10 0.1 secunde OK. 10 10
Punctaj total 70

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