#abc223f. [abc223_f]Parenthesis Checking
[abc223_f]Parenthesis Checking
题目描述
让我们将一个正确的括号序列定义为满足以下条件之一的字符串。
- 它是一个空字符串。
- 它是
(
、、)
的连接,其中 是一个正确的括号序列。 - 它是 、 的连接,其中 和 都是正确的括号序列。
我们有一个长度为 的字符串 ,由 (
和 )
组成。
给定 个查询 $\\text{Query}_1,\\text{Query}_2,\\ldots,\\text{Query}_Q$,按顺序处理它们。有两种类型的查询,格式和内容如下所示。
1 l r
:交换 的第 个和第 个字符。2 l r
:确定从第 个到第 个字符之间的连续子串是否是一个正确的括号序列。
约束条件
- 是一个长度为 ,由
(
和)
组成的字符串。 - 都是整数。
- 每个查询都是
1 l r
或2 l r
的格式。 - 至少有一个查询是以
2 l r
格式的。
输入
从标准输入中按以下格式给出输入:
输出
对于以 2 l r
格式的每个查询,如果连续子串是一个正确的括号序列,则打印 Yes
,否则打印 No
,并换行。
示例输入 1
5 3
(())(
2 1 4
2 1 2
2 4 5
示例输出 1
Yes
No
No
在第一个查询中,(())
是一个正确的括号序列。
在第二个查询中,((
不是一个正确的括号序列。
在第三个查询中,)(
不是一个正确的括号序列。
示例输入 2
5 3
(())(
2 1 4
1 1 4
2 1 4
示例输出 2
Yes
No
在第一个查询中,(())
是一个正确的括号序列。
在第二个查询中, 变成了 )()((
。
在第三个查询中,)()(
不是一个正确的括号序列。
示例输入 3
8 8
(()(()))
2 2 7
2 2 8
1 2 5
2 3 4
1 3 4
1 3 5
1 1 4
1 6 8
示例输出 3
Yes
No
No