만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

제곱 부분문자열

시간 제한0.5초메모리 제한1024 MB

요약
주어진 문자열 S에서 앞 절반과 뒤 절반이 같은 가장 긴 부분 문자열을 찾아 출력합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

길이가 2n2n인 문자열 TT의 길이 nn인 접두사와 길이 nn인 접미사가 같으면 TT를 제곱 문자열이라고 한다. 빈 문자열은 제곱 문자열이다.

문자열 SS가 주어질 때, SS의 부분 문자열이면서 제곱 문자열인 가장 긴 문자열을 출력하라. SS의 부분 문자열은 SS에서 몇 개의 문자를 제거하고 나머지 문자들의 순서를 바꾸지 않은 문자열이다.

입력

첫 번째 줄에 테스트 케이스의 개수 TT가 주어진다.

이후 TT개의 줄에 각각 문자열 SS가 주어진다. SS는 알파벳 소문자로만 이루어져 있다.

각 문자열의 길이는 1 이상 3000 이하이며, 주어지는 모든 문자열의 길이 합은 3000 이하이다.

출력

각 테스트 케이스에 대해 다음과 같이 출력하라.

정답이 빈 문자열이면 Case #T: 0을 한 줄에 출력한다.

정답이 빈 문자열이 아니면 Case #T: L을 첫 줄에 출력하고, 다음 줄에 정답을 출력한다.

여기서 TT는 테스트 케이스의 번호(1부터 시작)이고, LL은 정답 문자열의 길이이다.

예제1

  1. 예제 1

    입력
    5
    abba
    abbab
    abac
    abcd
    bbabab
    
    예상 출력
    Case #1: 2
    aa
    Case #2: 4
    abab
    Case #3: 2
    aa
    Case #4: 0
    Case #5: 4
    bbbb