Fişierul intrare/ieşire:evaluare2.in, evaluare2.outSursăPreOJI 2017
AutorMarius NicoliAdăugată demariusn01Marius Nicoli mariusn01
Timp execuţie pe test0.05 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Evaluare 2

Să se evalueze o expresie aritmetică. Aceasta poate conţine: operanzi numere naturale, operatorii: + (operator binar, adunare), / (operator binar, câtul împărţirii), ^ (operator binar, ridicare la putere), ! (operator unar, oglindeşte valoarea operandului, ex: !560 dă 65). Oricare doi operatori au priorităţi diferite (crescătoare, în ordinea dată mai sus, aşadar + are prioritatea cea mai mică). Operatorii + şi / se aplică de la stânga la dreapta. Operatorul ^ se aplică de la dreapta la stânga. Operatorul !, ca orice operator unar, se aplică de la dreapta la stânga. De asemenea, pot apărea paranteze rotunde care schimbă prioritatea operatorilor. Spre exemplu, expresia: 5+(!!10 + 3^2^3)/2 are valoarea 3286. Ea se obţine astfel: 5 + (1+3^8)/2 = 5+6562/2 = 5+3281 = 3286.

Date de intrare

Fişierul evaluare2.in contine pe primul rând expresia de evaluat.

Date de ieşire

Fişierul evaluare2.out conţine pe primul rând valoarea expresiei evaluate.

Restricţii

  • şirul dat are maxim 100 de caractere
  • numerele care apar iniţial în expresie sunt naturale de maxim 3 cifre
  • valoarea de afişat se încadrează pe long long
  • pentru 10% din punctaj nu apar paranteze şi este prezent doar operatorul +
  • pentru alte 10% din punctaj nu apar paranteze şi sunt prezenţi doar operatorii + şi /
  • pentru alte 40% din punctaj apar doar operatorii + şi / şi pot apărea şi paranteze
  • pentru alte 10% din punctaj apar paranteze şi operatorii +, / şi !
  • pentru alte 10% din punctaj apar paranteze şi operatorii +, / şi ^
  • expresia dată este corectă şi nu conţine alte caractere
  • se garantează că prin efectuarea corectă a operaţiilor nu se ajunge la împărţiri la 0
  • nici rezultatele parţiale la care se ajunge prin efectuarea operaţiilor în ordinea priorităţilor nu duce la depăşirea valorii maxime de la tipul long long

Exemplu

evaluare2.inevaluare2.out
5+(!!10+3^2^3)/2
3286
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?