Fişierul intrare/ieşire:eval.in, eval.outSursăpreONI 2007 Runda Finala
AutorConstantin JucovschiAdăugată dedominoMircea Pasoi domino
Timp execuţie pe test0.275 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Eval

Se da o expresie matematica care va contine N variabile, numele variabilelor fiind litere mici din alfabetul englez. Expresia va contine variabile, paranteze ((, )), operatori binari (+, -, *) si operatori unari (-, +, []). Cu exceptia operatorului unar [] care semnifica operatia de ridicare la patrat, toti ceilalti operatori au semnificatia clasica. Operatorii unari au prioritatea cea mai mare, urmati de operatorul *; operatorii binari +, - au prioritatea cea mai mica. Scrieti un program care evalueaza o astfel de expresie.

Date de intrare

Pe prima linie din fisierul de intrare eval.in se va afla numarul N de variabile din expresie. Urmatoarele N vor contine cate un numar intreg reprezentand valorile variabilelor din expresie: prima linie va reprezenta valoarea variabilei a, a doua linie va reprezenta valoarea variabilei b, etc.. Urmatoarea linie va contine un sir de caractere reprezentand expresia care trebuie evaluata.

Date de iesire

In fisierul de iesire eval.out se va afla un singur numar intreg reprezentand valoarea expresiei.

Restrictii

  • 1 ≤ N ≤ 26
  • Lungimea expresie este un numar natural din intervalul [1, 100.000]
  • Valoarea fiecarei variabile este un numar intreg din intervalul [-101.000, 101.000]
  • Se garanteaza ca expresia este corecta din punct de vedere matematic
  • Se garanteaza ca valoarea expresiei va fi un numar intreg din intervalul [-101.000, 101.000]
  • Pentru 70% din teste variabilele si rezultatul expresiei vor fi numere naturale

Exemplu

eval.ineval.out
3
1
2
3
[a]*(b+c)*(a*a+b*--+c)-c
32
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content