Décalage cyclique et recherche de sous-chaînes répétées
C#
Hard
loops
Tâche «Décalage cyclique et recherche de sous-chaînes répétées»
Étant donné une chaîne S composée de lettres latines minuscules. Il est nécessaire d'effectuer un décalage cyclique de la chaîne vers la gauche de K positions (K peut être supérieur à la longueur de la chaîne). Après le décalage, trouver toutes les sous-chaînes répétées non chevauchantes de longueur L (L est donné) dans la nouvelle chaîne. Une sous-chaîne répétée est une sous-chaîne qui apparaît deux fois ou plus dans la chaîne, et ses occurrences ne doivent pas se chevaucher. Afficher le nombre de ces sous-chaînes et les sous-chaînes elles-mêmes dans l'ordre lexicographique. S'il n'y a pas de telles sous-chaînes, afficher 0.
Format d\ entrée
Sur la première ligne, un entier N (1 ≤ N ≤ 1000) — la longueur de la chaîne. Sur la deuxième ligne, la chaîne S elle-même. Sur la troisième ligne, un entier K (0 ≤ K ≤ 10^9) — le nombre de décalages. Sur la quatrième ligne, un entier L (1 ≤ L ≤ N) — la longueur de la sous-chaîne.
Format de sortie
Sur la première ligne, afficher un entier M — le nombre de sous-chaînes uniques répétées non chevauchantes de longueur L. Si M > 0, sur les M lignes suivantes, afficher les sous-chaînes elles-mêmes dans l'ordre lexicographique.
Exemples
Exemple 1
ENTRÉE
5
abcde
3
2
SORTIE
0
Exemple 2
ENTRÉE
10
abracadabra
5
4
SORTIE
1
abra
main.cs