경주
시간 제한2초메모리 제한1024 MB
번호판 문자열의 부분집합을 골라 개수, 공통 접두사 길이, 공통 접미사 길이의 곱이 최대가 되는 값을 구합니다.
문제
라디에이터 스프링스에서 경주가 열릴 예정이다. 도시의 자존심 있는 자동차는 모두 이 경주에 참가하고 싶어 한다. 현재 대의 자동차가 신청했다. 각 자동차에는 자동차 번호가 있으며, 이는 소문자 라틴 문자로만 이루어진 비어 있지 않은 문자열이다. 두 자동차의 번호가 같을 수도 있다.
모든 자동차가 참가할 수 있는 것은 아니다. 심판이 참가할 자동차를 직접 고른다. 심판은 경주의 장관 정도를 최대화하려고 한다. 장관 정도는 다음 세 값의 곱으로 정의되는 자연수이다.
- 경주에 참가하는 자동차의 수
- 참가 자동차 번호들의 최장 공통 접두사의 길이
- 참가 자동차 번호들의 최장 공통 접미사의 길이
문자열 의 최장 공통 접두사는 모든 의 접두사이면서 길이가 가장 긴 문자열이다. 최장 공통 접미사도 같은 방식으로 접미사를 기준으로 정의한다.
이 정의는 경주 중에 찍는 사진과 관련이 있다. 나란히 달리는 자동차의 번호가 비슷할수록 사진이 더 보기 좋다. 장관 정도가 가장 큰 자동차 부분집합을 고르는 프로그램을 작성하라.
입력
첫째 줄에 자연수 ()이 주어진다. 이는 참가 신청한 자동차의 수이다. 다음 개의 줄에는 각각 소문자 라틴 문자로 이루어진 비어 있지 않은 문자열이 한 줄씩 주어진다. 모든 문자열 길이의 합은 을 넘지 않는다.
출력
장관 정도의 최댓값을 한 줄에 출력한다.
힌트
첫 번째 예시에서는 처음 세 자동차가 참가한다. 최장 공통 접두사의 길이는 2, 최장 공통 접미사의 길이는 2, 자동차 수는 3이므로 이다.
두 번째 예시에서는 세 번째 자동차만 참가한다. 문자열 하나의 최장 공통 접두사와 접미사는 그 문자열 전체이므로 이다.
세 번째 예시에서는 마지막 자동차를 제외한 모든 자동차가 참가한다. 최장 공통 접두사의 길이는 3, 최장 공통 접미사의 길이는 3, 자동차 수는 7이므로 이다.