Score : $500$ points
Let us define a correct parenthesis sequence as a string that satisfies one of the following conditions.
(
, $A$, )
, in this order, for some correct parenthesis sequence $A$.We have a string $S$ of length $N$ consisting of (
and )
.
Given $Q$ 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 $l$-th and $r$-th characters of $S$.2 l r
: Determine whether the contiguous substring from the $l$-th through the $r$-th character is a correct parenthesis sequence.(
and )
.1 l r
or 2 l r
.2 l r
.Input is given from Standard Input in the following format:
$N$ $Q$ $S$ $\text{Query}_1$ $\text{Query}_2$ $\vdots$ $\text{Query}_Q$
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, $S$ 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