Desplazamiento cíclico y búsqueda de subcadenas repetidas
C#
Hard
loops
Tarea «Desplazamiento cíclico y búsqueda de subcadenas repetidas»
Dada una cadena S compuesta por letras latinas minúsculas. Es necesario realizar un desplazamiento cíclico de la cadena hacia la izquierda en K posiciones (K puede ser mayor que la longitud de la cadena). Después del desplazamiento, encontrar todas las subcadenas repetidas no superpuestas de longitud L (L se da) en la nueva cadena. Una subcadena repetida es una subcadena que aparece dos o más veces en la cadena, y sus ocurrencias no deben superponerse. Mostrar la cantidad de dichas subcadenas y las propias subcadenas en orden lexicográfico. Si no hay tales subcadenas, mostrar 0.
Formato de entrada
En la primera línea, un número entero N (1 ≤ N ≤ 1000) — la longitud de la cadena. En la segunda línea, la propia cadena S. En la tercera línea, un número entero K (0 ≤ K ≤ 10^9) — la cantidad de desplazamientos. En la cuarta línea, un número entero L (1 ≤ L ≤ N) — la longitud de la subcadena.
Formato de salida
En la primera línea, muestre un número entero M — la cantidad de subcadenas repetidas no superpuestas únicas de longitud L. Si M > 0, en las siguientes M líneas muestre las propias subcadenas en orden lexicográfico.
Ejemplos
Ejemplo 1
ENTRADA
5
abcde
3
2
SALIDA
0
Ejemplo 2
ENTRADA
10
abracadabra
5
4
SALIDA
1
abra
main.cs