Diferente pentru problema/par intre reviziile #7 si #1

Diferente intre titluri:

Par
par

Diferente intre continut:

== include(page="template/taskheader" task_id="par") ==
Ioana tocmai a invatat la scoala despre paranteze rotunde si despre siruri parantezate corect. Un sir este parantezat corect daca este construit conform regulilor:
 
* <sir parantezat corect> = <sirul vid>
* <sir parantezat corect> = "(" + <sir parantezat corect> + ")"
* <sir parantezat corect> = <sir parantezat corect> + <sir parantezat corect>
 
De exemplu $(())$ si $()()$ sunt siruri parantezate corect, dar $)()$ sau $(()($ nu sunt parantezate corect. Andrei i-a furnizat Ioanei un sir format din $N$ paranteze inchise sau deschise si ea se gandeste acum sa inverseze unele paranteze (sa schimbe o paranteza deschisa cu una inchisa sau invers) astfel incat la final sirul sa fie parantezat corect. Ajutati-o pe Ioana si determinati numarul minim de inversari care trebuie efectuat astfel incat la final sirul sa fie parantezat corect.
Poveste şi cerinţă...
h2. Date de intrare
Fişierul de intrare $par.in$ contine pe prima linie numarul natural $N$, avand semnificatia din enunt. Pe a doua linie urmeaza $N$ caractere reprezentand sirul de paranteze furnizat de Andrei.
Fişierul de intrare $par.in$ ...
h2. Date de ieşire
În fişierul de ieşire $par.out$ se va afisa un singur numar, reprezentand numarul minim de inversari ce trebuie efectuat pentru ca la sfarsit sirul sa fie corect parantezat. In cazul in care nu exista solutie se va afisa doar numarul $-1$.
În fişierul de ieşire $par.out$ ...
h2. Restricţii
* $1 ≤ N ≤ 5000$
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. par.in |_. par.out |
| 4
  ((()
| 1
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
|
h3. Explicaţie
Se inverseaza a treia paranteza si sirul devine $(())$, care este un sir corect parantezat.
...
== include(page="template/taskfooter" task_id="par") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

3658