#codefestivalexhibitionb. [code_festival_exhibition_b]カッコつけ

[code_festival_exhibition_b]カッコつけ

问题文

高桥君是一个「装酷」的人。他喜欢在由开括号(和闭括号)组成的字符串中插入或删除括号。每个字符串都有一个定义为「括号难看度」的值。要使一个字符串 SS 变得「完美」,需要删除的字符数的最小值就是它的「括号难看度」。如果括号的配对没有矛盾,那么这个字符串就是「完美」的。尤其是,空串也是「完美」的。

例如,字符串 ()()(()) 是「完美」的,它的「括号难看度」为 00()) 如果移除最后一个括号,就变成了「完美」的。因此,它的「括号难看度」是 11

高桥君从朋友那里获得了一个字符串 SS。现在他要在这个字符串中插入或删除括号。高桥君有时会关注字符串中某一部分的「括号难看度」。您需要在高桥君问及「括号难看度」时计算出它。


输入

输入由标准输入给出,具体格式如下:

QQ SS x1x_1 y1y_1 z1z_1 x2x_2 y2y_2 z2z_2 : xQx_Q yQy_Q zQz_Q

  • 11 行为高桥君操作的次数 Q(1Q105)Q (1 ≦ Q ≦ 10^5)
  • 22 行为高桥君获得的字符串 S(1S105)S (1 ≦ | S | ≦ 10^5)
  • 接下来的 QQ 行,第 ii 行为第 ii 个操作内容,由字符 xix_i 和数字 yi,ziy_i, z_i 组成,以空格分隔。
  • xix_i( 时,表示插入开括号操作,在位置 yiy_i 处插入开括号,此时 ziz_i 始终为 00
  • xix_i) 时,表示插入闭括号操作,在位置 yiy_i 处插入闭括号,此时 ziz_i 始终为 00
  • xix_iD 时,表示删除操作,删除位置 yiy_i 处的字符,此时 ziz_i 始终为 00
  • xix_iQ 时,表示提问操作,在位置 yiy_iziz_i 的范围内(包括两端)询问「括号难看度」。
  • 没有删除不存在的字符,提问不存在的范围,插入字符到不存在的位置的输入。此外,所有位置皆基于 1 索引。

输出

输出由多行组成。每当高桥君提问时,输出其答案。


输入示例1


5
(()
D 1 0
( 3 0
Q 1 2
) 1 0
Q 2 4

输出示例1


0
1

11 次操作结束后的状态为 ()

22 次操作结束后的状态为 ())

33 次操作被询问的范围的字符串为 ()

44 次操作结束后的状态为 (())

55 次操作被询问的范围的字符串为 ())


输入示例2


11
(()()(()
( 1 0
( 1 0
D 4 0
Q 2 6
) 5 0
D 8 0
Q 1 9
( 3 0
) 8 0
D 10 0
Q 5 10

输出示例2


1
1
4

11 次操作结束后的状态为 ((()()(()

22 次操作结束后的状态为 (((()()(()

33 次操作结束后的状态为 ((()()(()

44 次操作被询问的范围的字符串为 (()()

55 次操作结束后的状态为 ((())()(()

66 次操作结束后的状态为 ((())()()

77 次操作被询问的范围的字符串为 ((())()()

88 次操作结束后的状态为 (((())()()

99 次操作结束后的状态为 (((())())()

1010 次操作结束后的状态为 (((())()))

1111 次操作被询问的范围的字符串为 `))())))