373
Cerința
Se dă un șir de paranteze rotunde care se închid corect (corect parantezat). Să se determine adâncimea parantezării.
Pentru un șir de paranteze închise corect S, adâncimea parantezării, D(S) este definită astfel:
- dacă șirul
Seste vid,D(S)=0 - dacă
S=(T), undeTeste un șir de paranteze corect,D(S)=1+D(T) - dacă
S=AB, undeAșiBsunt șiruri de paranteze corecte,D(S)=max{D(A),D(B)}
Date de intrare
Fișierul de intrare paranteze2.in conține pe prima un șir de paranteze rotunde, corect parantezat.
Date de ieșire
Fișierul de ieșire paranteze2.out va conține pe prima linie un număr M, reprezentând adâncimea parantezării.
Restricții și precizări
- șirul va conține cel mult
254de paranteze
Exemplu
paranteze2.in
()((()())())
paranteze2.out
3
#include <bits/stdc++.h>
using namespace std;
ifstream cin("paranteze2.in");
ofstream cout("paranteze2.out");
int main()
{
char ch[300];
cin >> ch;
int v[300];
int i = 0;
int var=0;
while(ch[i]!='\0')
{
if(ch[i]=='(')
var++ , v[i]=var;
else
v[i]=var , var--;
i++;
}
int max=0;
for(int j = 0 ; j < i ; ++j)
if(v[j]>max)
max=v[j];
cout << max;
return 0;
}
Comentarii