가장 긴 반복 부분문자열

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

요약
최대 20만 길이의 소문자 문자열에서 두 번 이상 나타나는 부분 문자열 중 가장 긴 것의 길이를 구합니다.
난이도

보통10점 중 6점

유형
이분 탐색, 문자열 매칭, 해시맵, 문자열
정답자
아직 제출이 없습니다

문제

알파벳 소문자로만 이루어진 길이 L의 문자열 S가 있다. S의 부분문자열 중 전체 문자열 안에서 두 번 이상 등장하는 부분문자열을 반복 부분문자열이라고 하자.

문자열 S가 주어졌을 때, 가장 긴 반복 부분문자열의 길이를 구하시오.

입력

첫째 줄에 문자열의 길이 L이 주어진다. (1 ≤ L ≤ 200,000)

둘째 줄에는 알파벳 소문자로만 이루어진 길이 L의 문자열 S가 공백 없이 주어진다.

출력

첫째 줄에 가장 긴 반복 부분문자열의 길이를 출력한다. 반복 부분문자열이 하나도 없다면 0을 출력한다.

예제2

  1. 예제 1

    입력
    28
    tellmetellmetetetetetetellme
    
    예상 출력
    11
  2. 예제 2

    입력
    5
    jykim
    
    예상 출력
    0