fbpx

Problema #849 – Paranteze2 – Rezolvari PBInfo

de Mihai-Alexandru

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 S este vid, D(S)=0
  • dacă S=(T), unde T este un șir de paranteze corect, D(S)=1+D(T)
  • dacă S=AB, unde A și B sunt ș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 254 de 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

S-ar putea sa iti placa