Rezolvare completă PbInfo #1126 Betisoare

Se presupune că unele dintre primele instrumente de calcul au fost beţişoarele de socotit. În problema noastră vom considera un număr ca fiind o succesiune de unul sau mai multe beţişoare, un beţişor fiind reprezentat de litera I. Într-o expresie, între oricare două numere există semnul + sau semnul *.

Exemple:

Numere
I
III
IIIIIIIIIII

Expresii
III
II*III
I+I*III+IIIIIII

Cerinţă

Scrieţi un program care evaluează astfel de expresii.

Date de intrare

Fișierul de intrare betisoare.in conține pe prima linie o valoare naturală n, care indică numărul de expresii care trebuie evaluate. Fiecare dintre următoarele n linii conţine un şir de maximum 1000000 caractere care reprezintă expresia ce trebuie evaluată.

Date de ieșire

Fișierul de ieșire betisoare.out va conține pe fiecare linie i dintre primele n linii câte un număr întreg care reprezintă rezultatul evaluării expresiei de pe linia i+1 din fişierul de intrare.

Restricții și precizări

  • 1 ≤ n ≤ 10
  • O expresie poate avea cel puţin 1 caracter şi cel mult 1000010 de caractere.
  • Valorile calculate pe parcurs şi valoarea finală au maximum 18 cifre.
    Dintre teste, 26% conţin numai operaţii de adunare, 22% numai operaţii de înmulţire, iar restul de 52% conţin ambele operaţii.

Exemple






betisoare.in betisoare.out
1
I+I*III+IIIIIII

11

2
IIII
I+I

4
2

3
I+I+I+I+I+I+I+I+I
I*I*I*I*I*I*I
IIII*IIII+I

9
1
17

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Betisoare:

I
III
IIIIIIIIIII

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1126 Betisoare

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1126 Betisoare de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!