아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Hamzawy

시간 제한1초메모리 제한256 MB

요약
주어진 문자열마다 겹치지 않는 접두사이자 접미사이며 내부에 한 번 더 나타나는 가장 긴 문자열을 구합니다.
난이도

보통10점 중 6점

유형
문자열 매칭
정답자
아직 제출이 없습니다

문제

함자위(Hamzawy)는 프로그래밍 면접에서 아래 문제를 받았지만 답을 찾지 못했다. 대신 풀어 주자.

소문자 영어 알파벳으로 이루어진 문자열 SS가 주어진다. SS의 접두사이면서 SS의 접미사이고, 동시에 SS 안에 부분문자열로 한 번 더 나타나는 문자열을 찾아야 한다. 이 세 번의 등장은 서로 겹치면 안 된다. 조건을 만족하는 문자열 중 가장 긴 것을 구하라.

문자열 SS의 접두사는 SS의 뒤에서 문자를 00개 이상 지워서 얻는 문자열이다. 접미사는 SS의 앞에서 문자를 00개 이상 지워서 얻는 문자열이다. 부분문자열은 SS의 앞에서 00개 이상, 뒤에서 00개 이상 지워서 얻는 문자열이다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤1001 \le T \le 100)

이어지는 TT개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄은 소문자 영어 알파벳 'a'부터 'z'로만 이루어진, 비어 있지 않은 문자열 하나이며 길이는 10610^6 이하이다. 한 입력에 들어 있는 모든 문자열의 길이 합은 10610^6 이하이다.

출력

각 테스트 케이스마다 한 줄에 Case n:을 출력하고, 공백 한 칸을 둔 다음 조건을 만족하는 가장 긴 문자열을 출력한다. nn은 테스트 케이스 번호이고 11부터 시작한다. 조건을 만족하는 문자열이 없으면 문자열 자리에 -1을 출력한다.

예제3

  1. 예제 1

    입력
    2
    barbararhubar
    barbararhuaar
    
    예상 출력
    Case 1: bar
    Case 2: -1
    
  2. 예제 2

    입력
    4
    a
    aa
    aaa
    aaaa
    
    예상 출력
    Case 1: -1
    Case 2: -1
    Case 3: a
    Case 4: a
    
  3. 예제 3

    입력
    4
    abcdefghij
    abcab
    abab
    z
    
    예상 출력
    Case 1: -1
    Case 2: -1
    Case 3: -1
    Case 4: -1