Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Bajtazar prowadzi hodowlę chomików. Każdy chomik ma unikalne imię, złożone z małych liter alfabetu angielskiego. Chomiki mają obszerną i komfortową klatkę. Bajtazar chce umieścić pod klatką wyświetlacz, który będzie wyświetlał imiona jego chomików. Wyświetlacz będzie miał postać ciągu liter, z których każda może być zapalona lub zgaszona. Naraz będzie wyświetlane tylko jedno imię chomika. Zapalone litery tworzące to imię muszą znajdować się obok siebie.
Bajtazar dopuszcza, aby to samo imię mogło być wyświetlane w kilku różnych miejscach, ale wymaga, aby każde imię mogło być wyświetlane na wyświetlaczu. Zauważ, że wystąpienia imion na wyświetlaczu mogą dowolnie na siebie nachodzić. Bajtazar poprosił Cię o pomoc w wyznaczeniu najmniejszej liczby liter, z jakich musi składać się wyświetlacz.
Inaczej mówiąc, należy wyznaczyć minimalną długość napisu (złożonego z małych liter alfabetu angielskiego), w którym każde imię chomika wystąpi co najmniej raz. (Mówimy, że słowo występuje w napisie, jeżeli stanowi jego spójny fragment).
Napisz program, który: wczyta imiona chomików, wyznaczy minimalną długość wyświetlacza, którego potrzebuje Bajtazar i wypisze wynik na standardowe wyjście.
Wejście
Pierwszy wiersz standardowego wejścia zawiera jedną liczbę całkowitą N, liczbę chomików Bajtazara. Każdy z kolejnych N wierszy zawiera niepusty napis złożony z małych liter alfabetu angielskiego będący imieniem chomika.
Wyjście
Pierwszy i jedyny wiersz standardowego wyjścia powinien zawierać jedną liczbę całkowitą – minimalną liczbę liter, z których musi być zbudowany wyświetlacz.
Ograniczenia
1 ≤ N ≤ 20. Długość żadnego imienia chomika nie przekracza 100 000 znaków.
Przykład
Input | Output | |
|
|