페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3712

팰린드롬 1s 128MB

문제

알파벳 소문자로만 이루어진 문자열이 주어진다. 

부분문자열의 "등장값" 이란 그 부분문자열이 등장하는 횟수와 부분문자열의 길이를 곱한 값이다. 

 

문자열이 주어졌을 때, 팰린드롬이면서 가장 큰 등장값을 가지는 부분문자열을 구하는 프로그램을 작성하시오.

 


입력

첫째 줄에 알파벳 소문자(a-z)로만 이루어진 문자열이 주어진다. 문자열의 길이는 300,000보다 작거나 같다.

 


출력

첫째 줄에 팰린드롬인 부분문자열 중에서 가장 큰 등장값을 출력한다.

 


예제

abacaba
7

예제의 경우에는 총 7개의 팰린드롬 부분문자열이 있다. a, b, c, aba, aca, bacab, abacaba.

 

a는 총 4번 등장하기 때문에, 등장값은 4 × 1 = 4

b는 총 2번 등장하기 때문에, 등장값은 2 × 1 = 2

c는 총 1번 등장하기 때문에, 등장값은 1 × 1 = 1

aba는 총 2번 등장하기 때문에, 등장값은 2 × 3 = 6

aca는 총 1번 등장하기 때문에, 등장값은 1 × 3 = 3

bacab는 총 1번 등장하기 때문에, 등장값은 1 × 5 = 5

abacaba는 총 1번 등장하기 때문에, 등장값은 1 × 7 = 7

가장 큰 등장값을 가지는 팰린드롬 부분문자열은 abacab이고, 등장값은 7이다.



출처

APIO 2014

로그인해야 코드를 작성할 수 있어요.