Zusammenstellung von Ketten aus Fragmenten mit maximaler Länge

Kotlin Hard functions

Aufgabe «Zusammenstellung von Ketten aus Fragmenten mit maximaler Länge»

Gegeben sind N Zeichenketten, die aus lateinischen Kleinbuchstaben bestehen (Länge jeder Zeichenkette von 1 bis 100). Es ist eine Funktion zu schreiben, die eine Liste von Zeichenketten entgegennimmt und die maximale Länge einer Kette zurückgibt, die durch sequentielles Verketten der Zeichenketten gebildet werden kann, sodass das letzte Zeichen der aktuellen Zeichenkette mit dem ersten Zeichen der nächsten übereinstimmt. Jede Zeichenkette darf höchstens einmal verwendet werden. Wenn keine Kette gebildet werden kann, wird 0 zurückgegeben.

Eingabeformat

Die erste Zeile ist eine ganze Zahl N (1 ≤ N ≤ 20). Danach folgen N Zeichenketten, eine pro Zeile.

Ausgabeformat

Eine ganze Zahl – die maximale Länge der Kette (Summe der Längen aller Zeichenketten in der Kette).

Beispiele

Beispiel 1

EINGABE
10 20
AUSGABE
0

Beispiel 2

EINGABE
15 15
AUSGABE
0
main.kt