#include <stdio.h>
int main(void) {
int n; // definisco la variabile che conterrĂ quanti caratteri leggere
scanf("%d", &n
); // leggo il numero di elementi da caricare nel vettore char v[n]; // definisco un vettore di char lungo n
for (int i=0; i<n; i++) // ciclo che legge n caratteri nella sezione INPUT
{
scanf(" %c", &v
[i
]); // leggo un char }
int out = controllaParentesi(v,n);
if(out == -1)
{
}
else if(out == 0)
{
}
}
int controllaParentesi(char a[], int l)
{
int angolata = 0;
int tonde = 0;
int quadrate = 0;
int graffe = 0;
if(l%2 != 0)
{
return -1;
}
for(int i = 0; i<l;i++)
{
if((a[i]=='>'&& angolata == 0) || (a[i]==')' && tonde == 0)
||(a[i]==']' && quadrate == 0)|| (a[i]=='}' && graffe == 0))
{
return -1;
}
else if((a[i]=='>' &&( a[i-1]=='('||a[i-1]=='['||a[i-1]=='{'))
||(a[i]==')' && (a[i-1]=='<'||a[i-1]=='['||a[i-1]=='{'))
||(a[i]==']' && (a[i-1]=='<'||a[i-1]=='('||a[i-1]=='{'))
||(a[i]=='}' && (a[i-1]=='<'||a[i-1]=='('||a[i-1]=='[')))
{
return -1;
}
else if((a[i]==')' && angolata !=0)
|| (a[i]==']'&&(angolata !=0 || tonde !=0))
|| (a[i]=='}'&&(angolata !=0 || tonde !=0 || quadrate !=0)))
{
return -1;
}
else if((a[i]=='(' && angolata!= 0)
|| (a[i]=='['&&(angolata !=0 || tonde !=0))
|| (a[i]=='{'&&(angolata !=0 || tonde !=0 || quadrate !=0)))
{
return -1;
}
else if(a[i]=='<')
{
angolata++;
}
else if(a[i]=='>')
{
angolata = angolata - 1;
}
else if(a[i]=='(')
{
tonde++;
}
else if(a[i]==')')
{
tonde = tonde - 1;
}
else if(a[i]=='[')
{
quadrate++;
}
else if(a[i]==']')
{
quadrate = quadrate - 1;
}
else if(a[i]=='{')
{
graffe++;
}
else if(a[i]=='}')
{
graffe = graffe -1;
}
}
if(angolata != 0 || tonde != 0 || quadrate != 0 || graffe != 0)
{
return -1;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CglpbnQgbjsgLy8gZGVmaW5pc2NvIGxhIHZhcmlhYmlsZSBjaGUgY29udGVycsOgIHF1YW50aSBjYXJhdHRlcmkgbGVnZ2VyZQogICAgc2NhbmYoIiVkIiwgJm4pOyAvLyBsZWdnbyBpbCBudW1lcm8gZGkgZWxlbWVudGkgZGEgY2FyaWNhcmUgbmVsIHZldHRvcmUKY2hhciB2W25dOyAvLyBkZWZpbmlzY28gdW4gdmV0dG9yZSBkaSBjaGFyIGx1bmdvIG4KZm9yIChpbnQgaT0wOyBpPG47IGkrKykgLy8gY2ljbG8gY2hlIGxlZ2dlIG4gY2FyYXR0ZXJpIG5lbGxhIHNlemlvbmUgSU5QVVQKewpzY2FuZigiICVjIiwgJnZbaV0pOyAvLyBsZWdnbyB1biBjaGFyCn0KIAppbnQgb3V0ID0gY29udHJvbGxhUGFyZW50ZXNpKHYsbik7CiAKaWYob3V0ID09IC0xKQp7CglwcmludGYoIiVzIiwibWFsZm9ybWF0YSIpOwp9CmVsc2UgaWYob3V0ID09IDApCnsKCXByaW50ZigiJXMiLCJjb3JyZXR0YSIpOwp9CiAKfQogCiAgaW50IGNvbnRyb2xsYVBhcmVudGVzaShjaGFyIGFbXSwgaW50IGwpCnsKCWludCBhbmdvbGF0YSA9IDA7CglpbnQgdG9uZGUgPSAwOwoJaW50IHF1YWRyYXRlID0gMDsgCiAgICAgICAgaW50IGdyYWZmZSA9IDA7CiAKIAkJaWYobCUyICE9IDApCiAgICAgICAgewogICAgCXJldHVybiAtMTsKICAgICAgICB9CiAgICAJZm9yKGludCBpID0gMDsgaTxsO2krKykKICAgIAl7CiAgICAJCWlmKChhW2ldPT0nPicmJiBhbmdvbGF0YSA9PSAwKSB8fCAoYVtpXT09JyknICYmIHRvbmRlID09IDApCiAgICAJCSB8fChhW2ldPT0nXScgJiYgcXVhZHJhdGUgPT0gMCl8fCAoYVtpXT09J30nICYmIGdyYWZmZSA9PSAwKSkKICAgIAkJewogICAgCQkJcmV0dXJuIC0xOwogICAgCQl9CiAgICAJCWVsc2UgaWYoKGFbaV09PSc+JyAmJiggYVtpLTFdPT0nKCd8fGFbaS0xXT09J1snfHxhW2ktMV09PSd7JykpCiAgICAJCXx8KGFbaV09PScpJyAmJiAoYVtpLTFdPT0nPCd8fGFbaS0xXT09J1snfHxhW2ktMV09PSd7JykpCiAgICAJCXx8KGFbaV09PSddJyAmJiAoYVtpLTFdPT0nPCd8fGFbaS0xXT09JygnfHxhW2ktMV09PSd7JykpCiAgICAJCXx8KGFbaV09PSd9JyAmJiAoYVtpLTFdPT0nPCd8fGFbaS0xXT09JygnfHxhW2ktMV09PSdbJykpKQogICAgCQl7CiAgICAJCQlyZXR1cm4gLTE7CiAgICAJCX0KICAgIAkJZWxzZSBpZigoYVtpXT09JyknICYmIGFuZ29sYXRhICE9MCkKICAgIAkJfHwgKGFbaV09PSddJyYmKGFuZ29sYXRhICE9MCB8fCB0b25kZSAhPTApKQogICAgCQl8fCAoYVtpXT09J30nJiYoYW5nb2xhdGEgIT0wIHx8IHRvbmRlICE9MCB8fCBxdWFkcmF0ZSAhPTApKSkKICAgIAkJeyAgICAgIAogICAgCQkJcmV0dXJuIC0xOwogICAgCQl9CiAgICAJCWVsc2UgaWYoKGFbaV09PScoJyAmJiBhbmdvbGF0YSE9IDApCiAgICAJCXx8IChhW2ldPT0nWycmJihhbmdvbGF0YSAhPTAgfHwgdG9uZGUgIT0wKSkKICAgIAkJfHwgKGFbaV09PSd7JyYmKGFuZ29sYXRhICE9MCB8fCB0b25kZSAhPTAgfHwgcXVhZHJhdGUgIT0wKSkpCiAgICAJCXsKICAgIAkJCXJldHVybiAtMTsKICAgIAkJfQogICAgCQllbHNlIGlmKGFbaV09PSc8JykKICAgIAkJewogICAgCQkJYW5nb2xhdGErKzsKICAgIAkJfQogICAgCQllbHNlIGlmKGFbaV09PSc+JykKICAgIAkJewogICAgCQkJYW5nb2xhdGEgPSBhbmdvbGF0YSAtIDE7CiAgICAJCX0KICAgIAkJZWxzZSBpZihhW2ldPT0nKCcpCiAgICAJCXsKICAgIAkJCXRvbmRlKys7CiAgICAJCX0KICAgIAkJZWxzZSBpZihhW2ldPT0nKScpCiAgICAJCXsKICAgIAkJCXRvbmRlID0gdG9uZGUgLSAxOwogICAgCQl9CiAgICAJCWVsc2UgaWYoYVtpXT09J1snKQogICAgCQl7CiAgICAJCQlxdWFkcmF0ZSsrOwogICAgCQl9CiAgICAJCWVsc2UgaWYoYVtpXT09J10nKQogICAgCQl7CiAgICAJCQlxdWFkcmF0ZSA9IHF1YWRyYXRlIC0gMTsKICAgIAkJfQogICAgCQllbHNlIGlmKGFbaV09PSd7JykKICAgIAkJewogICAgCQkJZ3JhZmZlKys7CiAgICAJCX0KICAgIAkJZWxzZSBpZihhW2ldPT0nfScpCiAgICAJCXsKICAgIAkJCWdyYWZmZSA9IGdyYWZmZSAtMTsKICAgIAkJfQogICAgCX0KCWlmKGFuZ29sYXRhICE9IDAgfHwgdG9uZGUgIT0gMCB8fCBxdWFkcmF0ZSAhPSAwIHx8IGdyYWZmZSAhPSAwKQogewogCXJldHVybiAtMTsKIH0KIAogICAgICByZXR1cm4gMDsKIAp9