一个合法的括号序列是这样定义的:
S
(S)
A
B
AB
现在给你一个长度为 的由 ( 和 ) 组成的字符串,位置标号从 到 。对这个字符串有下列四种操作:
(
)
Replace a b c
))())())(
Replace 2 7
)(((((()(
Swap a b
Swap 3 5
))))(())(
Invert a b
Invert 4 8
))((()(((
Query a b
Query
Query 3 6
输入文件的第一行是用空格隔开的两个正整数 ,分别表示字符串的长度和将执行的操作个数。
第二行是长度为 的初始字符串 。接下来的 行是将依次执行的个操作,其中操作名与操作数之间以及相邻操作数之间均用空格隔开。
对于每个 Query 操作,输出一行一个整数表示答案。输入数据保证有解。
4 5 (((( Replace 1 2 ) Query 1 2 Swap 2 3 Invert 3 4 Query 1 4
1 2
输入中有 个 Query 操作,所以输出有 行。
执行第一个 Query 操作时的括号序列为 ))((,因改变第 位可使 之间的字符串变成合法的括号序列,故输出的第一行为 1。
))((
1
执行第二个 Query 操作时的括号序列为 )((),因要改变第 位和第 位才能使 之间的字符串变成合法的括号序列,故输出的第二行为 2。
)(()
2
对于 的数据,; 对于 的数据,。
没有写明提示 没有写明来源(题面来自洛谷)