atcoder#ABC223F. [ABC223F] Parenthesis Checking
[ABC223F] Parenthesis Checking
Score : points
Problem Statement
Let us define a correct parenthesis sequence as a string that satisfies one of the following conditions.
- It is an empty string.
- It is a concatenation of
(
, ,)
, in this order, for some correct parenthesis sequence . - It is a concatenation of , , in this order, for some correct parenthesis sequences and .
We have a string of length consisting of (
and )
.
Given queries $\text{Query}_1,\text{Query}_2,\ldots,\text{Query}_Q$, process them in order. There are two kinds of queries, with the following formats and content.
1 l r
: Swap the -th and -th characters of .2 l r
: Determine whether the contiguous substring from the -th through the -th character is a correct parenthesis sequence.
Constraints
- is a string of length consisting of
(
and)
. - are all integers.
- Each query is in the format
1 l r
or2 l r
. - There is at least one query in the format
2 l r
.
Input
Input is given from Standard Input in the following format:
Output
For each query in the format 2 l r
, print Yes
if the contiguous substring is a correct parenthesis sequence, and No
otherwise, followed by a newline.
5 3
(())(
2 1 4
2 1 2
2 4 5
Yes
No
No
In the first query, (())
is a correct parenthesis sequence.
In the second query, ((
is not a correct parenthesis sequence.
In the third query, )(
is not a correct parenthesis sequence.
5 3
(())(
2 1 4
1 1 4
2 1 4
Yes
No
In the first query, (())
is a correct parenthesis sequence.
In the second query, becomes )()((
.
In the third query, )()(
is not a correct parenthesis sequence.
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
Yes
No
No