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