Se știe că scăderea nu este o operație asociativă, adică *x[~1~]* - ([*x[~2~]*] - *x[~3~]*) ≠ ([*x[~1~]*] - *x[~2~]*) - *x[~3~]*.
Ca urmare, prin plasarea unor perechi de paranteze în expresie, putem obține diferite valori.
Pentru problema noastră, vom denumi scădere o expresie de forma de mai sus în care pot apărea și paranteze rotunde care se închid corect. Valoarea unei scăderi se obține efectuând operațiile de scădere în ordine de la stânga la dreapta; dacă apar paranteze, se efectuează mai întâi operațiile din paranteze.
h2. Cerință
Date fiind valorile ${@x[1], x[2], …, x[n]@}$ care intervin în scădere, scrieți un program care să rezolve următoarele două cerințe:
Date fiind valorile *x[~1~]*, *x[~2~]*, …, *x[~n~]* care intervin în scădere, scrieți un program care să rezolve următoarele două cerințe:
# să se determine valoarea maximă a unei scăderi (obținută prin inserarea convenabilă a unor paranteze rotunde în expresia {@x[1]-x[2]-x[3]-...-x[n]@}), precum și o scădere având valoare maximă.
# să se determine valoarea maximă a unei scăderi (obținută prin inserarea convenabilă a unor paranteze rotunde în expresia *x[~1~]* - *x[~2~]* - *x[~3~]* - ... - *x[~n~]*), precum și o scădere având valoare maximă.
# să se determine valoarea unei scăderi specificate.