Responsive image
Meniu
Toate soluțiile
Soluţii trimise de tine
Compilator online
Ajutor

Expeval

Adăugată de :
sorynsoo
Sursă :
XOR2012
Autor :
-
Grupă :
Medie
Punctaj :
0 pc

Restricţii

Citire / Scriere :
stdin, stdout
Limită timp :
300 ms
Limită memorie :
4096 kbytes

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ţa

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

Fişierul de intrare conţine pe prima linie expresia artimetică.

 

Date de iesire

Fişierul de iesire 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 şi precizări:

  • 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ă a rezultatului evaluării expresiei nu va 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.

 

Exemplu

Date de intrare

Date de iesire

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.

Date de intrare

Date de iesire

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.

Date de intrare

Date de iesire

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.


Trimite o solutie

Format: cpp şi c

Selectează runda

Trebuie să fii logat pentru a trimite surse


Indicații rezolvare

Siruri de caractere


Comentarii

Adauga un comentariu: Click !