#luoguP10513. 括号
括号
题目描述
圆给了你一个长度为 的字符串 , 仅由 ( 和 ) 构成。
她会对其做 次操作,操作有两种类型:
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
提示
【样例解释】
- 第一次截取的字符串是
(),答案为 。 - 翻转后字符串变为
))(())。 - 第二次截取的字符串是
)(,答案为 。 - 第三次截取的字符串是
()),答案为 。 - 第四次截取的字符串是
(()),答案为 。
【数据范围】
- 对于 的数据,;
- 对于 的数据,;
- 对于 的数据,;
- 另有 的数据,满足 且数据随机生成;
- 另有 的数据,满足 但不保证数据随机生成;
对于所有数据,保证 ,,,。数据有梯度。