#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.
OJI 2009, Clasa a X-a
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 | #54400098 | Utilizator | |
Fișier | reteta.cpp | Dimensiune | 1.46 KB |
Data încărcării | 27 Noiembrie 2024, 16:46 | Scor / rezultat | 100 puncte |
reteta.cpp: In function 'void getIngredients()': reteta.cpp:24:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0; i<sir.size(); i++) ^ reteta.cpp: In function 'int getTime()': reteta.cpp:48:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0; i<sir.size(); i++) ^
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 secunde | OK. | 10 | 10 | ||
5 | 0 secunde | OK. | 10 | 10 | ||
6 | 0 secunde | OK. | 10 | 10 | ||
7 | 0 secunde | OK. | 10 | 10 | ||
8 | 0 secunde | OK. | 10 | 10 | ||
9 | 0 secunde | OK. | 10 | 10 | ||
10 | 0 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Reteta 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ă.