Se consideră o expresie aritmetică formată din operanzi, operatori şi paranteze rotunde. Operatorii pot fi + (adunarea), * (înmulţirea), / (div), % (mod). Operanzii sunt litere mici ale alfabetului, iar valorile pe care le pot lua sunt din mulţimea {1, 2, 3}. De exemplu, având expresia (a+b)*(b+c/a), dacă se alege a=2, b=1, c=3, vom obţine expresia (2+1)*(1+3/2) care se evaluează conform regulilor matematice ştiute. Dar asocierea operanzilor cu valorile din mulţimea {1, 2, 3} nu este unică, astfel că dacă am fi ales a=1, b=3, c=2, atunci se obţinea expresia (1+3)*(3+2/1). Se ştie că expresia este corectă şi că nu conţine paranteze inutile de tipul (a) sau ((a+b)).
Cerinţă
Dându-se o expresie, să se asocieze fiecărui operand o valoare din mulţimea {1, 2, 3} astfel încât rezultatul expresiei să fie maxim posibil.
Date de intrare
Fisierul de intrare expeval.in conţine pe prima linie expresia artimetică.
Date de ieşire
Fisierul de iesire expeval.out va conţine un singur număr natural reprezentând valoarea maximă care poate fi obţinută din evaluarea expresiei prin asocierea convenabilă a operanzilor cu valorile din mulţimea {1,2,3}.
Restricţii
Expresia este de lungime maximă 100 şi nu conţine spaţii şi nici alte caractere nepermise
În expresie este cel puţin un operand şi sunt cel mult 10 operanzi distincţi
Valoarea maximă ale rezultatului evaluării expresiei, ca şi valorile intermediare, nu vor depăşi 2 000 000 000
Dacă la o împărţire de forma a/b sau a%b operandul b este 0, atunci se consideră că expresia nu poate fi evaluată şi atunci prin convenţie rezultatul evaluării întregii expresii este 0.
Într-o expresie de forma a/b*c evaluarea se face de la stânga la dreapta, adică se determină mai întâi câtul împărţirii lui a la b, apoi rezultatul se înmulţeşte cu c
Exemple
expeval.in
expeval.out
Explicaţii
c+a*(b+a)/k
21
Sunt patru operanzi, a, b, c, k. Valoarea maximă 21 se obţine dacă a=3, b=3, c=3, k=1.
expeval.in
expeval.out
Explicaţii
a*(a+a/f)+f*f*f/(a*a*a)
28
Valoarea maximă 28 se obţine dacă a=1 şi f=3.
expeval.in
expeval.out
Explicaţii
z/(x/(x+y))
0
Subexpresia x/(x+y) este 0, indiferent de valorile lui x şi y, deci expresia nu se poate evalua. Valoarea afişată va fi 0.