시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 512 | 131 | 83 | 30.403% |
알파벳 소문자로만 이루어진 문자열이 주어진다. 부분문자열의 "등장값" 이란 그 부분문자열이 등장하는 횟수와 부분문자열의 길이를 곱한 값이다. 문자열이 주어졌을 때, 팰린드롬이면서 가장 큰 등장값을 가지는 부분문자열을 구하는 프로그램을 작성하시오.
첫째 줄에 알파벳 소문자(a-z)로만 이루어진 문자열이 주어진다. 문자열의 길이는 300,000보다 작거나 같다.
첫째 줄에 팰린드롬인 부분문자열 중에서 가장 큰 등장값을 출력한다.
abacaba
7
문자열 s의 길이를 |s|로 나타내자.
문자열 s1s2...s|s|의 부분문자열이란 1 ≤ i ≤ j ≤ |s|를 만족하는 비어있지 않은 문자열 sisi+1...sj이다. 문자열 그 자체도 부분문자열에 포함된다.
왼쪽부터 오른쪽 순서로 읽었을 때와 오른쪽부터 왼쪽 순서로 읽었을 때가 같은 문자열을 팰린드롬이라고 한다.
예제의 경우에는 총 7개의 팰린드롬 부분문자열이 있다. a, b, c, aba, aca, bacab, abacaba.
가장 큰 등장값을 가지는 팰린드롬 부분문자열은 abacab이고, 등장값은 7이다.
Olympiad > Asia-Pacific Informatics Olympiad > APIO 2014 1번