expresie

Time limit: 0.05s Memory limit: 8MB Input: expresie.in Output: expresie.out

Se consideră o expresie formată din numere naturale şi perechi de paranteze drepte. Includerea între paranteze corespunde operației de calcul a câtului împărțirii întregi la 22 a valorii incluse între paranteze, iar alăturarea a două paranteze corespunde operației de adunare a valorilor subexpresiilor. Expresia poate fi calculată doar dacă este corectă, adică nu conține numere care să nu fie incluse între paranteze drepte, nu conține perechi de paranteze care să nu includă nici un număr sau nici o altă subexpresie şi perechile de paranteze se închid corect.

Cerință

Fiind dată o expresie construită conform descrierii să se decidă dacă este corectă şi în caz afirmativ să se calculeze valoarea acesteia.

Date de intrare

Fișierul de intrare expresie.in conține pe prima linie o expresie formată numai din paranteze drepte şi numere naturale.

Date de ieșire

Fișierul de ieșire expresie.out va conține pe prima linie valoarea expresiei în cazul în care aceasta este corectă. Dacă expresia din fişierul de intrare nu este corectă, atunci se va scrie mesajul expresie gresita.

Restricții și precizări

  • Numerele care apar în expresii sunt întregi şi sunt cuprinse între 00 şi 30 00030 \ 000.
  • Expresia din fișierul de intrare este formată din cel mult 200200 de caractere.

Exemplul 1

expresie.in

[[34][23[12][]

expresie.out

expresie gresita

Explicație

Expresia este greşită deoarece parantezele nu se închid corect (de exemplu, prima paranteză nu se închide), nu toate numerele sunt incluse între paranteze si nu toate perechile de paranteze conţin numere sau subexpresii.

Exemplul 2

expresie.in

[4][[6][10]]

expresie.out

6

Explicație

Valoarea expresiei este 66 deoarece
[6]=3[6] = 3
[10]=5[10] = 5
[4]=2[4] = 2
[[6][10]]=[(3+5)]=4[[6][10]] = [(3 + 5)] = 4
deci [4][[6][10]]=2+4=6[4][[6][10]] = 2 + 4 = 6.

Log in or sign up to be able to send submissions!