ConcursC++17

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 + (adunare) sau semnul * (înmulţire).
Exemple:
Figura 1 din enunțul original al problemei betisoare.Figura 1 din enunțul original al problemei betisoare.Mărește schema ↗

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ă nn, care indică numărul de expresii care trebuie evaluate. Fiecare dintre următoarele nn linii conţine un şir de caractere care reprezintă expresia ce trebuie evaluată.

Date de ieşire

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

Restricţii şi precizări

  • 1≤n≤101 \leq n \leq 10
  • Atenție! O expresie poate avea cel puţin 11 caracter şi cel mult 1 000 0081 \ 000 \ 008 caractere.
  • Valorile calculate pe parcurs şi valoarea finală au maximum 1818 cifre.
  • Dintre teste, 26%26\% conţin numai operaţii de adunare, 22%22\% numai operaţii de înmulţire, iar restul de 52%52\% conţin ambele operaţii.

Exemplul 1

betisoare.in

1
I+I*III+IIIIIII

betisoare.out

11

Explicaţie

1+1⋅3+7=111 + 1 \cdot 3 + 7 = 11

Exemplul 2

betisoare.in

2
IIII
I+I

betisoare.out

4
2

Explicaţie

4=44 = 4
1+1=21 + 1 = 2

Exemplul 3

betisoare.in

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

betisoare.out

9
1
17

Explicaţie

1+1+1+1+1+1+1+1+1=91 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 9
1⋅1⋅1⋅1⋅1⋅1⋅1=71 \cdot 1 \cdot 1 \cdot 1 \cdot 1 \cdot 1 \cdot 1 = 7
4⋅4+1=174 \cdot 4 + 1 = 17

Sursă și autori

ONI 2014, clasele 6. Marinel Șerban.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑