Schnittpunkt minimaler zyklischer Verschiebungen
C++
Hard
strings
Aufgabe «Schnittpunkt minimaler zyklischer Verschiebungen»
Gegeben sind zwei Zeichenketten s und t, bestehend aus Kleinbuchstaben des lateinischen Alphabets. Es ist die Länge der längsten gemeinsamen Teilzeichenkette zu finden, die eine Teilzeichenkette einer zyklischen Verschiebung der Zeichenkette s und einer zyklischen Verschiebung der Zeichenkette t ist. Eine zyklische Verschiebung ist eine Umordnung der Zeichen einer Zeichenkette, bei der alle Zeichen um k Positionen nach links verschoben werden und die links herausfallenden Zeichen an das Ende angehängt werden. Die Länge der Zeichenketten überschreitet 10^5 nicht. Wenn keine gemeinsame Teilzeichenkette gefunden wird, geben Sie 0 aus.
Eingabeformat
In der ersten Zeile ist die Zeichenkette s (1 ≤ |s| ≤ 10^5) gegeben. In der zweiten Zeile ist die Zeichenkette t (1 ≤ |t| ≤ 10^5) gegeben. Die Zeichenketten bestehen nur aus Kleinbuchstaben des lateinischen Alphabets.
Ausgabeformat
Geben Sie eine einzelne ganze Zahl aus — die Länge der längsten gemeinsamen Teilzeichenkette, die in einer zyklischen Verschiebung von s und einer zyklischen Verschiebung von t vorkommt.
Beispiele
Beispiel 1
EINGABE
abc
def
AUSGABE
0
Beispiel 2
EINGABE
bcd
AUSGABE
abc
main.cpp