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