fork(1) download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int N;
  5. scanf("%d", &N);
  6. char k[10010];
  7. int V[10010];
  8.  
  9. scanf("%s", k);
  10. int i;
  11. for(i=0; i<N; i++)
  12. {
  13. if(k[i]=='<')
  14. k[i]=1;
  15. if(k[i]=='(')
  16. k[i]=2;
  17. if(k[i]=='[')
  18. k[i]=3;
  19.  
  20.  
  21. if(k[i]=='{')
  22. k[i]=4;
  23. if(k[i]=='>')
  24. k[i]=-1;
  25. if(k[i]==')')
  26. k[i]=-2;
  27. if(k[i]==']')
  28. k[i]=-3;
  29. if(k[i]=='}')
  30. k[i]=-4;
  31. }
  32. int A,B,C,D, Z=0, T=0, R=0, a=0, b=0, c=0, d=0;
  33. for(i=0; i<N; i++){
  34. R=R+k[i];
  35. if(k[i]<0 )
  36. Z=Z-1;
  37. else
  38. Z=Z+1;
  39.  
  40.  
  41. if(R<0 || Z<0){
  42. //printf("malformata");
  43. break; }
  44. if(k[i]==1){
  45. a=0;
  46. A=1;}
  47. a=a+k[i];
  48. if(k[i]==-1 && A==1){
  49. A=0;
  50. if(a!=0){
  51. T=a;
  52. //printf("err1 %d\n", a);
  53. break;}}
  54.  
  55. if(k[i]==2){
  56. b=0;
  57. B=1;}
  58. b=b+k[i];
  59. if(k[i]==-2 && B==1){
  60. B=0;
  61. if(b!=0){
  62. T=b;
  63. //printf("err2 %d\n", b);
  64. break;
  65. } }
  66.  
  67. if(k[i]==3){
  68. d=0;
  69. D=1;}
  70. d=d+k[i];
  71. if(k[i]==-3 && D==1){
  72. D=0;
  73. if(d!=0) {
  74. T=d;
  75. //printf("err3 %d\n", d);
  76. break;
  77. } }
  78.  
  79. if(k[i]==4){
  80. c=0;
  81. C=1;}
  82. c=c+k[i];
  83. if(k[i]==-4 && C==1){
  84. C=0;
  85. if(c!=0){
  86. T=c;
  87. //printf("err4 %d\n", c);
  88. break; }}
  89. }
  90. if (R!=0 || T!=0 || Z!=0)
  91. printf("malformata");
  92. //for(i=0; i<N; i++)
  93. //printf("%d\n", k[i]);
  94. else
  95. printf("corretta");
  96. printf("%d", Z);
  97. return 0;
  98. }
  99.  
Success #stdin #stdout 0s 4304KB
stdin
[))
stdout
corretta0