fork(4) download
  1. uses math;
  2. const fi='nkbracke.inp';
  3. fo='nkbracke.out';
  4. oo=round(1e9);
  5. var ch,ch1:char;
  6. i,n,m:longint;
  7. tiento,sum,a:array[0..round(1e6)]of longint;
  8. procedure mo;
  9. begin
  10. assign(input,fi);reset(input);
  11. assign(output,fo);rewritE(output);
  12. end;
  13. procedure dong;
  14. begin
  15. close(input);closE(output);
  16. end;
  17. procedure nhap;
  18. begin
  19. readln(n,m);
  20. for i:=1 to n do
  21. begin
  22. read(ch);
  23. if ch='(' then a[i]:=1 else a[i]:=-1;
  24. end;
  25. end;
  26. procedure sosanh(i,l,r:longint);
  27. begin
  28. tiento[i]:=min(tiento[l],sum[l]+tiento[r]);
  29. sum[i]:=sum[l]+sum[r];
  30. end;
  31. procedure sinh(l,r,i:longint);
  32. var mid:longint;
  33. begin
  34. if l=r then
  35. begin
  36. sum[i]:=a[l];
  37. tiento[i]:=a[l];
  38. end
  39. else
  40. begin
  41. mid:=(l+r) div 2;
  42. sinh(l,mid,i*2);
  43. sinh(mid+1,r,i*2+1);
  44. sosanh(i,i*2,i*2+1);
  45. end;
  46. end;
  47. procedure update(u,w,l,r,i:longint);
  48. var mid:longint;
  49. begin
  50. if (r<u) or (u<l) then exit;
  51. if (l=r) and (l=u) then
  52. begin
  53. sum[i]:=w;
  54. tiento[i]:=w;
  55. end
  56. else
  57. begin
  58. mid:=(l+r) div 2;
  59. update(u,w,l,mid,i*2);
  60. update(u,w,mid+1,r,i*2+1);
  61. sosanh(i,i*2,i*2+1);
  62. end;
  63. end;
  64. procedure find(u,v,l,r,i:longint);
  65. var mid:longint;
  66. begin
  67. if (r<u) or (v<l) then exit;
  68. if (u<=l) and (r<=v) then
  69. sosanh(0,0,i)
  70. else
  71. begin
  72. mid:=(l+r) div 2;
  73. find(u,v,l,mid,i*2);
  74. find(u,v,mid+1,r,i*2+1);
  75. end;
  76. end;
  77. procedure xuli;
  78. var l,r,loai:longint;
  79. begin
  80. sinh(1,n,1);
  81. for m:=1 to m do
  82. begin
  83. read(loai,l);
  84. if loai=0 then
  85. begin
  86. read(ch1,ch);
  87. if ch='(' then update(l,1,1,n,1) else update(l,-1,1,n,1);
  88. end
  89. else
  90. begin
  91. read(r);
  92. tiento[0]:=oo;
  93. sum[0]:=0;
  94. find(l,r,1,n,1);
  95. if (tiento[0]>=0) and (sum[0]=0) then write(1) else write(0);
  96. end;
  97. end;
  98. end;
  99. begin
  100. mo;
  101. nhap;
  102. xuli;
  103. dong;
  104. end.
  105.  
  106.  
Runtime error #stdin #stdout 0s 12208KB
stdin
Standard input is empty
stdout
An unhandled exception occurred at $080480E4 :
EInOutError : File not found
  $080480E4