問題一覧 > 通常問題

No.3652 Range Bracket Sequence

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 54
作問者 : Rino-program / テスター : gomaazarasi p-adic とある理系大学生の日常
ProblemId : 13694 / yukicoder contest 511 (Div.2) (順位表) / 自分の提出
問題文最終更新日: 2026-08-22 13:33:37
yukicoder contest 511 (Div.2)の他の問題:

問題文

() からなる長さ $N$ の文字列 $S$ が与えられます。 $Q$ 個のクエリが与えられます。クエリは次の $2$ 種類のいずれかです。与えられた順番に処理してください。

  • 1 x t : 文字列 $S$ の $x$ 番目の文字を、$t=1$ ならば ( に、$t=2$ ならば ) に変更する。
  • 2 l r : 文字列 $S$ の $l$ 番目から $r$ 番目までを抜き出した部分文字列を $T$ とする。文字列 $T$ に対して、以下の操作を行えなくなるまで繰り返したとき、削除することのできる文字数の最大値を出力しなさい。
    • $T$ の文字のうち、$a < b$ かつ $T_a =$ (、 $T_b =$ ) となるようなインデックス $a, b$ を選び、その $2$ 文字を削除する。残った文字列は元の順序を保ったまま連結される。
      (ここで、$T_a$, $T_b$ はそれぞれ、文字列 $T$ の $a$, $b$ 番目の文字を表します)

なお、すべてのテストケースでクエリ 2 l r は $1$ つ以上存在する事が保証されます。

制約

  • $1 \le N, Q \le 2 \times 10^5$
  • $S$ は () からなる長さ $N$ の文字列
  • クエリ1について、$1 \le x \le N$
  • クエリ1について、$t \in \{1, 2\}$
  • クエリ2について、$1 \le l \le r \le N$
  • $N, Q, x, t, l, r$ はすべて整数

入力

入力は以下の形式で標準入力から与えられます。

$N$ $Q$
$S$
$query_1$
$query_2$
$\vdots$
$query_Q$

各クエリ $query_i$ は以下のいずれかの形式です。

1 x t
2 l r

出力

タイプ $2$ のクエリの数を $k$ としたとき、$k$ 行出力してください。
$i$ 行目には、$i$ 番目のタイプ $2$ のクエリに対する答え(削除された文字の最大総数)を出力してください。
最後に改行してください。

サンプル

サンプル1
入力
5 3
()(()
2 1 5
1 3 2
2 2 5
出力
4
2

$1$ つ目のクエリでは、$T =$ ()(() です。$1$ 番目の ( と $2$ 番目の ) を選んで削除すると (() になります。次に $1$ 番目の ( と $3$ 番目の ) を削除すると ( が残り、これ以上操作できません。計 $4$ 文字削除したため、4 を出力します。
$2$ つ目のクエリでは、$S$ の $3$ 番目の文字を ) に変更し、$S$ は ())() になります。
$3$ つ目のクエリでは、$T =$ ))() です。$3$ 番目の ( と $4$ 番目の ) を削除すると )) となり、計 $2$ 文字削除されます。

サンプル2
入力
4 2
)(()
2 1 4
2 2 3
出力
2
0

$1$ つ目のクエリでは、$T =$ )(() です。$2$ 番目の ( と $4$ 番目の ) を削除することで $2$ 文字削除できます。
$2$ つ目のクエリでは、$T =$ (( です。条件を満たす組は選べないため、0 を出力します。

サンプル3
入力
6 4
((()))
2 1 6
1 1 2
2 1 6
2 2 5
出力
6
4
4

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。