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. if(k[j]!=0 && k[i]!=-k[j])
  71. break;
  72. if(k[j]!=0 && k[i]==-k[j])
  73. {
  74. k[i]=0;
  75. k[j]=0;
  76. M=1;
  77. break;
  78. }
  79. }
  80. }
  81. }
  82. if(R!=0){
  83. printf("malformataC");
  84. return 0;
  85. }
  86.  
  87. }
  88.  
  89. printf(" %d\n", T);
  90. printf("corretta\n");
  91. for(i=0; i<N; i++)
  92. printf(" %d", k[i]);
  93.  
  94.  
  95. }
  96. else
  97. printf("malformata");
  98. return 0;
  99. }
  100.  
Success #stdin #stdout 0s 4344KB
stdin
6
{[()]]
stdout
malformataC