Module: ボル


Problem

6 /10


文字列クエリ

Problem

最初は空の文字列のセットがあります。この一連の行で処理する必要がある 3 つの異なる操作があります。
  • 1 秒: 指定された文字列をセットに追加します。
  • 2 k l: セット内に、長さ l の共通の接尾辞を持つ k 個の文字列 (必ずしも異なるとは限りません) があるかどうかを調べます。このサフィックスは最大である必要はありません。
  • 3 i: i 番目の操作で追加されたセットから文字列を削除します (まだ削除されていない場合)。
入力:
最初の行には、1 つの整数が含まれます。これは、処理される操作の数 q (1 <= q <= 105) です。
次に、各行にリクエストの説明が含まれます。まず、1、2、または 3 の数字で、リクエストのタイプを示します。 
これが最初のタイプのクエリである場合、文字列 s は以下に示され、その合計の長さは 105 を超えません。
これが 2 番目のタイプのクエリである場合、2 つの整数 k と l が与えられます (1 <= k、l <= 105)。
これが第 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
はい
いいえ
はい
いいえ