Сборка цепочек из фрагментов с максимальной длиной

Kotlin Сложный functions

Задача «Сборка цепочек из фрагментов с максимальной длиной»

Дано N строк, состоящих из латинских букв нижнего регистра (длина каждой строки от 1 до 100). Необходимо написать функцию, которая принимает список строк и возвращает максимальную длину цепочки, которую можно составить, соединяя строки последовательно так, что последний символ текущей строки совпадает с первым символом следующей. Каждую строку можно использовать не более одного раза. Если цепочку составить невозможно, вернуть 0.

Формат ввода

Первая строка — целое число N (1 ≤ N ≤ 20). Далее N строк по одной на строке.

Формат вывода

Целое число — максимальная длина цепочки (сумма длин всех строк в цепочке).

Примеры

Пример 1

ВВОД
10 20
ВЫВОД
0

Пример 2

ВВОД
15 15
ВЫВОД
0
main.kt