Problem
Il existe un ensemble de chaînes qui est initialement vide. Trois opérations différentes doivent être gérées sur cet ensemble de lignes :
- 1 s : ajoutez la chaîne donnée à l'ensemble.
- 2 k l : découvrez s'il y a k chaînes (pas nécessairement distinctes) dans l'ensemble qui ont un suffixe commun de longueur l. Ce suffixe ne doit pas nécessairement être le plus grand.
- 3 i : supprime la chaîne de l'ensemble qui a été ajoutée lors de la ième opération (si elle n'a pas déjà été supprimée).
Saisie :
La première ligne contient un seul entier - le nombre d'opérations q (1 <= q <= 10
5) à traiter.
Ensuite, chaque ligne contient une description de la requête. C'est d'abord un chiffre 1, 2 ou 3, indiquant le type de demande.
S'il s'agit d'une requête du premier type, alors la chaîne s est donnée ci-dessous, dont la longueur totale ne dépasse pas 10
5.
S'il s'agit d'une requête du second type, alors deux entiers k et l sont donnés (1 <= k, l <= 10
5).
S'il s'agit d'une requête du troisième type, alors le numéro i est donné (1 <= i <= le numéro de l'opération en cours), où i est le numéro de l'opération du premier type.
Sortie :
Pour chaque requête du deuxième type, écrivez le mot "OUI" sur une ligne distincte, si les lignes nécessaires existent, et "NON" sinon.
Exemple :
Entrée |
Sortie |
9
1 aba
1 accba
2 2 2
2 2 3
1 aaaa
1 ababa
2 3 2
3 1
2 3 2
| OUI
NON
OUI
NON |