많은 데이터베이스는 문자 필드(특히 인덱스)를 저장할 때 접두사 압축을 사용합니다. 이 기법은 문자열 수열 A1,A2,…,AN을 다음과 같이 압축합니다.
첫 번째 문자열 A1은 그대로 저장합니다. 그다음 각 문자열 Ai+1에 대해, 바로 앞 문자열 Ai와 공유하는 가장 긴 공통 접두사의 길이를 j라고 합시다. 즉 Ai=ai,1ai,2⋯ai,p와 Ai+1=ai+1,1ai+1,2⋯ai+1,q의 처음 j개 문자가 모두 같은 최대의 j (≤min(p,q))입니다. 그러면 Ai+1은 코드 값이 j인 제어 문자 하나와, 그 뒤에 이어지는 나머지 문자 ai+1,j+1ai+1,j+2⋯ai+1,q로 저장됩니다. 따라서 저장 길이는 1+(q−j)입니다.
만약 j=0이면(두 문자열에 공통 접두사가 없으면) 제어 문자 한 바이트가 여전히 앞에 붙으므로, 저장 길이는 원래 길이보다 1만큼 늘어납니다.
수열 전체를 압축했을 때의 최소 총 저장 길이를 구하세요.
첫째 줄에 정수 N이 주어집니다. 이어지는 N개의 줄에 각각 문자열 Ai가 하나씩 주어집니다.
압축된 문자열들의 최소 총 길이를 정수 하나로 출력합니다.