Expresie

Time limit: 0.04s Memory limit: 20MB Input: expresie.in Output: expresie.out

Prin convenţie numim expresie aritmetică ponderată o expresie construită astfel:

  • expresia conţine numere întregi de cel mult 22 cifre despărţite prin virgulă;
  • numim k-şir o enumerare de kk numere despărţite prin virgulă (k1)(k \geq 1);
  • o expresie poate conţine unul sau mai multe kk-şiruri;
  • expresia foloseşte paranteze rotunde şi paranteze drepte.

Evaluarea expresiei se face după următoarele reguli:

  • dacă expresia conţine un singur kk-şir atunci rezultatul expresiei este reprezentat de suma celor kk numere (Exemplu: 2,4,1=2+4+1=72,4,1 = 2+4+1 = 7);
  • dacă în expresie întâlnim un kk-şir delimitat de paranteze rotunde rezultatul evaluării acestui kk-şir va fi reprezentat de suma maximă a unui secvenţe ce aparţine kk-şirului, unde prin secvenţă se înţelege o succesiune de numere aflate pe poziţii consecutive în şir (Exemplu: (2,4,1,3,2,3,2)=>(-2,4,-1,3,-2,-3,2) => secvenţa de sumă maximă este 4,1,34,-1,3 a cărui sumă este egală cu 66);
  • dacă în expresie întâlnim un kk-şir delimitat de paranteze pătrate, elementele kk-şirului fiind numerotate 1,2,..,k,1,2,..,k, rezultatul evaluării acestui kk-şir va fi reprezentat de valoarea elementului aflat pe poziţia [k+12][ \frac{k + 1}{2} ] dacă şirul ar fi ordonat crescător (mediana unui şir) (Exemplu: [2,9,10,3,5]=> [-2,9,10,3,5] => şirul ordonat [2,3,5,9,10]=>[-2,3,5,9,10] => iar valoarea expresiei este egală cu 55).
  • evaluarea parantezelor se face dinspre interior spre exterior.

Cerinţă

Fiind dată o expresie aritmetică ponderată să se determine:

  • câte numere întregi conţine expresia aritmetică;
  • care este valoarea expresiei aritmetice.

Date de intrare

Fişierul de intrare expresie.in conţine pe prima linie un şir de caractere ce reprezintă o expresie aritmetică ponderată.

Date de ieșire

Fişierul de ieşire expresie.out va conţine pe prima linie numărul de numere întregi din expresie, iar pe următoarea linie va fi scris un număr ce reprezintă valoarea expresiei aritmetice.

Restricții și precizări

  • expresia se consideră corectă
  • 33 ≤ lungimea unei expresii 100 000≤ 100 \ 000
  • şirul prin care se codifică expresia poate să conţină doar următoarele caractere: cifre, paranteze rotunde şi pătrate deschise şi închise, caracterul virgulă, caracterul minus
  • pentru rezolvarea primei cerinţe se obţine 20%20\% din valoarea fiecărui test
  • 10%10\% dintre teste nu vor conţine paranteze
  • 20%20\% dintre teste nu vor conţine paranteze imbricate

Exemplul 1

expresie.in

2,(2,-4,1,-1,5)

expresie.out

6
7

Explicație

Expresia conţine 66 numere întregi
Valoarea expresiei este: 2+5=72+5 = 7

Exemplul 2

expresie.in

(3,-1,4),[2,3,1,8]

expresie.out

7
8

Explicație

6+26 + 2

Exemplul 3

expresie.in

(2,-1,[1,2,3,4,5],-4,1)

expresie.out

9
4

Explicație

(2,1,3,4,1)=4(2,-1,3,-4,1) = 4

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