#P10513. 括号
括号
题目描述
圆给了你一个长度为 的字符串 , 仅由 (
和 )
构成。
她会对其做 次操作,操作有两种类型:
1 l r
,她会翻转 到 的括号,即(
变)
,)
变(
。2 l r
,她想知道区间 中最长合法括号子序列的长度除以 的答案。
圆认为以下的括号序列是合法的:
-
空序列是一个合法序列。
-
如果
A
是一个合法序列,则(A)
也是一个合法序列。 -
如果
A
和B
都是合法序列,则AB
也是一个合法序列。
圆认为,序列 的子序列是满足 的序列 。
由于操作太多了,她算不过来,请你帮帮她吧。
输入格式
第一行一个整数 。
第二行一个长度为 的字符串 ,保证仅由 (
和 )
构成 。
第三行一行一个整数 。
接下来 行,每行三个数 ,,,对应上面的两种操作。
输出格式
对于每一个 的操作,输出一行一个整数,表示答案。
6
(()())
5
2 2 3
1 1 3
2 2 3
2 4 6
2 3 6
1
0
1
2
提示
【样例解释】
- 第一次截取的字符串是
()
,答案为 。 - 翻转后字符串变为
))(())
。 - 第二次截取的字符串是
)(
,答案为 。 - 第三次截取的字符串是
())
,答案为 。 - 第四次截取的字符串是
(())
,答案为 。
【数据范围】
- 对于 的数据,;
- 对于 的数据,;
- 对于 的数据,;
- 另有 的数据,满足 且数据随机生成;
- 另有 的数据,满足 但不保证数据随机生成;
对于所有数据,保证 ,,,。数据有梯度。