Diferente pentru problema/plus2 intre reviziile #4 si #5

Nu exista diferente intre titluri.

Diferente intre continut:

Exemple: $23 plus 523 = 5$, $562 plus 56 = 2$.
Adunarea mai multor numere se face de la stânga la dreapta: se adună primele două numere conform metodei descrise mai sus, apoi rezultatul se adună cu al treilea, şi aşa mai departe.
Într-o expresie în care se adună mai multe numere pot să apară paranteze rotunde. În evaluarea unei asemenea expresii, numită _expresie parantezată_, se efectuează mai întâi adunările din paranteze conform metodei descrise mai sus, parantezele fiind apoi înlocuite cu rezultatul adunărilor din paranteze.
 
Expresia a{~e~}
Se defineşte $adâncimea A{~E~}$ corespunzătoare unei expresii parantezate $E$ astfel:
* dacă expresia $E$ nu conţine paranteze, atunci adâncimea acesteia este $0$;
* dacă expresia $E$ este de forma $(F)$, atunci $A{~E~} = 1 + A{~F~}$;
* dacă expresia $E$ este de forma $E1 plus E2…plus Ek$, atunci $A{~E~} = max(A{~E1~}, A{~E2~}, ..., A{~Ek~})$.
 
h2. Cerinţe
 
Pentru a-i ajuta pe pământenii care doresc să înveţe acest nou mod de adunare, scrieţi un program care citeşte o expresie parantezată şi determină:
a) adâncimea expresiei date;
b) valoarea acestei expresii.
h2. Date de intrare
Fişierul de intrare $plus2.in$ ...
Fişierul de intrare $plus2.in$ conţine pe prima linie un număr natural $n$. Pe următoarele $n$ linii se află descrierea expresiei parantezate. Pe fiecare dintre aceste linii se află un  număr natural sau una dintre valorile $-1$ sau $-2$. Valoarea $-1$ reprezintă o paranteză rotundă deschisă iar valoarea $-2$ reprezintă o paranteză rotundă închisă.
h2. Date de ieşire
În fişierul de ieşire $plus2.out$ ...
Fişierul de ieşire $plus2.out$ va conţine:
 
* pe prima linie numărul natural ce reprezintă adâncimea expresiei date;
* pe a doua linie se va scrie numărul natural ce reprezintă rezultatul evaluării expresiei date, adunarea numerelor făcându-se conform metodei descrise.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $1 < n ≤ 2000$
* fiecare dintre celelalte numere naturale din fişier are cel mult $9$ cifre;
* în fiecare paranteză se află cel puţin un număr natural;
* dacă într-o paranteză se află un singur număr natural, atunci valoarea expresiei este egală cu valoarea numărului din paranteză;
* pentru rezolvarea corectă a cerinţei $a)$ se acordă $20%$ din punctaj, iar pentru rezolvarea corectă a ambelor cerinţe se acordă punctajul integral.
h2. Exemplu
table(example). |_. plus2.in |_. plus2.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 12
-1
1343
-1
234
4532
-2
-2
14091
-1
21
2
-2
| 2
4639
|
h3. Explicaţie
...
Expresia parantezată care trebuie evaluată este:
$(1343 plus (234 plus 4532)) plus 14091 plus (21 plus 2) =$
$(1343 plus 45334) plus 14091 plus (21 plus 2) =$
$4543 plus 14091 plus (21 plus 2)=$
$4543 plus 14091 plus 1=$
$46391 plus 1=4639$
Valoarea expresei este $4639$.
Adâncimea expresiei este $2$, deoarece
 
* $A{~(1343 plus (234 plus 4532)) plus 14091 plus (21 plus 2)~} = max(A{~(1343 plus (234 plus 4532))~}, A{~14091~}, A{~(21 plus 2)~}) = max(2, 0, 1) = 2$
* $A{~(1343 plus (234 plus 4532))~} = 1 + max(A{~1343~}, A{~(234 plus 4532)~}) = 1 + max(0, 1) = 2$
* $A{~1343~} = 0$
* $A{~(234 plus 4532)~} = 1 + A{~(234 plus 4532)~} = 1 + 0 = 1$
== include(page="template/taskfooter" task_id="plus2") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.