Cerința
Jimmy se joacă cu un string S
, inițial gol, pe care poate realiza următoarele operații:
- adaugă o literă mică oarecare
ch
la sfârșitul string-ului (1 ch
) - elimină ultimul caracter din string (
2
) - afișează string-ul (
3
)
Jimmy deține și o mulțime de string-uri M
și se întreabă care este numărul minim necesar de operații pe string-ul S
pentru a afișa toate string-urile din mulțimea M
, într-o ordine oarecare?
Date de intrare
Pe fiecare linie se va afla câte un cuvânt din mulțimea M
.
Date de ieșire
Programul va afișa răspunsul cerut.
Restricții și precizări
- Se recomandă folosirea fastio
1 ≤ |M| ≤ 1.000.000
1 ≤
\(\sum_1^n \)|M[i]| ≤ 5.000.000
- toate string-urile din input sunt formate doar din litere mici ale alfabetului englez
- după ultima operație de afișare, Jimmy trebuie să golească string-ul
S
Exemplu:
Intrare
tz abc abcdef abcde abctz
Ieșire
25
Explicație
O posibilă secvență de operații este următoarea:
1 t -> t
1 z -> tz
3 -> afisare "tz"
2 -> t
2 ->
1 a -> a
1 b -> ab
1 c -> abc
3 -> afisare "abc"
1 d -> abcd
1 e -> abcde
3 -> afisare "abcde"
1 f -> abcdef
3 -> afisare "abcdef"
2 -> abcde
2 -> abcd
2 -> abc
1 t -> abct
1 z -> abctz
3 -> afisare "abctz"
2 -> abct
2 -> abc
2 -> ab
2 -> a
2 ->