問題一覧 > 通常問題

No.3503 Brackets Stack Query 2

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 65
作問者 : n_bitand_n_per_3 / テスター : Naru820 Nzt3 irinoirino Solalyth
ProblemId : 13228 / CPCTF 2026: PPC (順位表) / 自分の提出
問題文最終更新日: 2026-04-17 22:29:49
CPCTF 2026: PPCの他の問題:

問題文

文字列 $T$ が次の条件を満たすとき、 $T$ を良い棒付き括弧列と呼びます。

  • 以下の操作を0回以上繰り返すことで $T$ を空文字列にすることができる。
    • (連続な)部分文字列として含まれる (|) を選び、これを取り除く。

例えば (|)((|)|(|)), および空文字列は良い棒付き括弧列ですが、)|()||()) は良い括弧列ではありません。

文字列 $S$ があります。$S$ ははじめ空文字列です。以下で説明されるクエリを与えられる順に $Q$ 個処理してください。そして、各クエリの直後に $S$ が良い括弧列であるかを判定してください。 クエリは次の 2 種類です。

  • 1 c: 文字 $c$ が与えられる。$c$ は ( または | または ) である。$c$ を $S$ の末尾に追加する。
  • 2: $S$ の末尾の文字を削除する。この時、$S$ は空文字列でないことが保証される。

制約

  • $1≤Q≤8 \times 10^5$
  • 1 種類目のクエリの $c$ は ( または | または )
  • 2 種類目のクエリを与えられた時点で $S$ は空でない

入力

入力は以下の形式で標準入力で与えられる。
$Q$
$\text{query}_1$
...
$\text{query}_Q$

ただし、$\text{query}_i$は $i$ 個目のクエリを表し、以下のいずれかの形式で与えられる。

$1 ~ c$
$2$

出力

$Q$ 行出力せよ。$i$ 行目には $i$ 番目のクエリを処理した直後の $S$ が良い棒付きかっこ列である場合はYes を、そうでない場合はNoを出力せよ。

サンプル

サンプル1
入力
5
1 (
1 |
1 )
2
1 |
出力
No
No
Yes
No
No

1回目のクエリを処理した後、S(です。これは正しい棒付き括弧列ではありません。

2回目のクエリを処理した後、S(|です。これは正しい棒付き括弧列ではありません。

3回目のクエリを処理した後、S(|)です。これは正しい棒付き括弧列です。

4回目のクエリを処理した後、S(|です。これは正しい棒付き括弧列ではありません。

5回目のクエリを処理した後、S(||です。これは正しい棒付き括弧列ではありません。

サンプル2
入力
2
1 (
1 )
出力
No
No

通常の括弧列は ()は今回の定義に当てはまりません。

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