적절한 문자열 문제

아직 제출이 없습니다시간 제한9초메모리 제한1024 MB

문제

문자열 s의 접두사(prefix)이면서 s가 아닌 문자열을 s의 적절한 접두사라 한다. 같은 방식으로 s의 접미사(suffix)이면서 s가 아닌 문자열을 s의 적절한 접미사라 한다.

두 문자열 s, t에 대해 f(s, t)를 s의 적절한 접미사이면서 t의 적절한 접두사인 문자열 중 가장 긴 것의 길이로 정의한다.

A, C, G, T로만 이루어진 n개의 문자열 s1, s2, ..., sn이 주어진다. 이 문자열들은 하나가 다른 하나의 부분문자열(substring)이 아님이 보장된다.

이 때 _i=1n_j=1nf(s_i,s_j)\sum\_{i=1}^{n} {\sum\_{j=1}^{n} {f(s\_i, s\_j)} }를 구해 출력한다.

입력

첫째 줄에 문자열의 개수 n이 주어진다. (1 ≤ n ≤ 100,000)

그 후 n개의 줄에 A, C, G, T로만 이루어진 문자열 s1, s2, ..., sn이 주어진다.

이 때 한 문자열이 다른 문자열의 부분문자열(substring)이 아니며, n개 문자열 길이 합은 107 이하이다.

힌트

빈 문자열도 적절한 접두사 혹은 적절한 접미사가 될 수 있다.

입력 예제에서 f(s1, s1) = 4, f(s2, s1) = 6, f(s3, s1) = 6, f(s4, s1) = 3, f(s4, s2) = 4 이고, 나머지 11개 값은 전부 0이다. 따라서 답은 4 + 6 + 6 + 3 + 4 = 23이다.