Problem
最初は空の文字列のセットがあります。この一連の行で処理する必要がある 3 つの異なる操作があります。
- 1 秒: 指定された文字列をセットに追加します。
- 2 k l: セット内に、長さ l の共通の接尾辞を持つ k 個の文字列 (必ずしも異なるとは限りません) があるかどうかを調べます。このサフィックスは最大である必要はありません。
- 3 i: i 番目の操作で追加されたセットから文字列を削除します (まだ削除されていない場合)。
入力:
最初の行には、1 つの整数が含まれます。これは、処理される操作の数 q (1 <= q <= 10
5) です。
次に、各行にリクエストの説明が含まれます。まず、1、2、または 3 の数字で、リクエストのタイプを示します。
これが最初のタイプのクエリである場合、文字列 s は以下に示され、その合計の長さは 10
5 を超えません。
これが 2 番目のタイプのクエリである場合、2 つの整数 k と l が与えられます (1 <= k、l <= 10
5)。
これが第 3 のタイプの要求である場合、番号 i が与えられます (1 <= i <= 現在の操作の番号)。ここで、i は第 1 のタイプの操作の番号です。
出力:
2 番目のタイプのクエリごとに、必要な行が存在する場合は "YES" という単語を別の行に出力し、"NO" を出力します。それ以外の場合
例:
<本体>
入力 |
出力 |
9
1アバ
1アキュバ
2 2 2
2 2 3
1 ああああ
1アババ
2 3 2
3 1
2 3 2
| はい
いいえ
はい
いいえ |
表>