3433 - 括号翻转
时间限制 : 2 秒
内存限制 : 512 MB
给定一个长度为 n 的括号序列,要求支持两种操作:
将[L{i}, R{i}]区间内(序列中的第 L{i}个字符到第 R{i}个字符)的括号全部翻转(左括号变成右括号,右括号变成左括号)。
求出以L{i}为左端点时,最长的合法括号序列对应的R{i}(即找出最大的R{i}使 [L{i}, R{i}] 是一个合法括号序列)。
输入
输入的第一行包含两个整数 n, m,分别表示括号序列长度和操作次数。
第二行包含给定的括号序列,括号序列中只包含左括号和右括号。
接下来 m 行,每行描述一个操作。如果该行为 1 L R
, 表示第一种操作,区间为 \left[L, R\right];如果该行为 2 L
表示第二种操作,左端点为 L 。
输出
对于每个第二种操作,输出一行,表示对应的R{i}。如果不存在这样的R{i},请输出0。
样例
输入
7 5 ((())() 2 3 2 2 1 3 5 2 3 2 1
输出
4 7 0 0
提示
对于所有评测用例,1 \leq n \leq 10^{6}, 1 \leq m \leq 2 \times 10^{5} 。
来源
蓝桥杯 2021 国赛 A 组 H 题(B 组 I 题)