만드는 중입니다

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

카멜레온 부분 문자열

시간 제한2초메모리 제한512 MB

요약
문자열 S가 주어질 때, S의 접두사이면서 접미사이고 S의 안쪽에도 나타나는 가장 긴 부분 문자열을 구한다.
난이도

보통10점 중 7점

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

문제

문자열 SS의 부분 문자열 TT가 다음 세 조건을 모두 만족하면 TT를 카멜레온 부분 문자열이라고 한다.

  • TT는 SS의 접두사이다.
  • TT는 SS의 접미사이다.
  • SS 안에서 TT가 위의 두 자리가 아닌 자리에도 등장한다. 즉 SS의 첫 문자에서 시작하지도 않고 SS의 마지막 문자에서 끝나지도 않는 TT의 등장이 하나 이상 있다.

세 등장은 서로 겹쳐도 된다.

예를 들어 S=S = fixprefixsuffix이면 fix는 카멜레온 부분 문자열이다. fix는 SS의 접두사이자 접미사이고, 7번째 문자에서 시작하는 등장도 있다.

문자열 SS가 주어지면 가장 긴 카멜레온 부분 문자열을 구한다.

입력

첫째 줄에 문자열 SS가 주어진다. SS는 알파벳 소문자로만 이루어지고, 길이는 11 이상 10610^6 이하이다.

출력

가장 긴 카멜레온 부분 문자열을 첫째 줄에 출력한다. 카멜레온 부분 문자열은 SS의 접두사이므로 길이가 정해지면 문자열도 하나로 정해지고, 답은 유일하다. 카멜레온 부분 문자열이 없으면 -1을 출력한다.

예제7

  1. 예제 1

    입력
    fixprefixsuffix
    
    예상 출력
    fix
    
  2. 예제 2

    입력
    abcdabc
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    qwertyqwertyqwerty
    
    예상 출력
    qwerty
    
  4. 예제 4

    입력
    papapapap
    
    예상 출력
    papap
    
  5. 예제 5

    입력
    a
    
    예상 출력
    -1
    
  6. 예제 6

    입력
    aa
    
    예상 출력
    -1
    
  7. 예제 7

    입력
    aaa
    
    예상 출력
    a