Intersección de desplazamientos cíclicos mínimos
C++
Hard
strings
Tarea «Intersección de desplazamientos cíclicos mínimos»
Se dan dos cadenas s y t, compuestas por letras latinas minúsculas. Es necesario encontrar la longitud de la subcadena común más larga que sea subcadena de algún desplazamiento cíclico de la cadena s y de algún desplazamiento cíclico de la cadena t. Un desplazamiento cíclico es una permutación de los caracteres de la cadena, donde todos los caracteres se desplazan k posiciones a la izquierda, y los caracteres que salen por la izquierda se trasladan al final. La longitud de las cadenas no supera 10^5. Si no se encuentra una subcadena común, se debe mostrar 0.
Formato de entrada
En la primera línea se da la cadena s (1 ≤ |s| ≤ 10^5). En la segunda línea se da la cadena t (1 ≤ |t| ≤ 10^5). Las cadenas consisten únicamente en letras latinas minúsculas.
Formato de salida
Muestre un único número entero: la longitud de la subcadena común más larga que aparece en algún desplazamiento cíclico de s y en algún desplazamiento cíclico de t.
Ejemplos
Ejemplo 1
ENTRADA
abc
def
SALIDA
0
Ejemplo 2
ENTRADA
bcd
SALIDA
abc
main.cpp