Problem
Evan의 코드에는 n개의 변수가 포함되어 있습니다. 각 변수는 영문 소문자(소문자)로만 구성된 고유한 이름을 가집니다. 어느 날 Evan은 자신의 코드를 단축하기로 결정했습니다.
그는 새 이름이 쌍별로 구분되는 방식으로 각 변수의 이름을 비어 있지 않은 접두사로 바꾸려고 합니다(그러나 일부 변수의 새 이름은 이 변수 또는 다른 변수의 이전 이름과 동일할 수 있음). 이러한 가능한 모든 대체 중에서 그는 변수 이름의 전체 길이가 최소인 것을 찾고자 합니다.
문자열 b의 끝에서 일부(없을 수도 있음) 문자를 제거하고 a를 얻을 수 있는 경우 문자열 a는 문자열 b의 접두사입니다.
새 이름의 가능한 최소 총 길이를 찾으십시오.
입력:
첫 번째 줄에는 단일 정수 n(1 ≤ n ≤ 10
5)이 포함됩니다. Evan의 코드에 있는 변수의 수.
다음 n 줄에는 한 줄에 하나씩 변수 이름이 포함됩니다. 각 이름은 빈 문자열이 아니며 소문자(작은) 영문자만 포함합니다. 이러한 모든 문자열의 총 길이는 10
5를 넘지 않습니다. 모든 변수 이름이 다릅니다.
출력:
단일 정수 인쇄 — 새 변수 이름의 가능한 최소 총 길이.
예:
<몸>
입력 |
출력 |
3
코드 |
6 |
5
아바
앱
아
아아
아카다 |
11 |
3
전보
디지털
저항
| 3 |
테이블>
설명:
첫 번째 예에서 가장 좋은 옵션 중 하나는 "cod", "co", "c"로 입력되는 순서대로 이름을 줄이는 것입니다.
두 번째 예에서는 성을 "aac"로 줄일 수 있습니다. 및 "a" 앞의 이름 다른 변수 이름을 변경하지 않고.