No.3503 Brackets Stack Query 2
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 65
作問者 :
n_bitand_n_per_3
/ テスター :
Naru820
Nzt3
irinoirino
Solalyth
タグ : / 解いたユーザー数 65
作問者 :
Solalyth
問題文最終更新日: 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もしくは右上の雲マークをクリックしてアカウントを作成してください。