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

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

Prefixuffix

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

요약
문자열 t가 주어질 때, 길이 L인 접두사와 접미사가 서로 순환 회전 관계가 되는 최대 L(단, L ≤ n/2)을 구한다.
난이도

어려움10점 중 8점

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

문제

이 문제에서는 영어 소문자로 이루어진 문자열만 다룹니다. 문자열의 앞쪽 일부를 접두사, 뒤쪽 일부를 접미사라고 합니다. 특히 빈 문자열은 모든 문자열의 접두사이면서 접미사입니다.

두 문자열이 순환 동치(cyclically equivalent)라는 것은, 한 문자열의 어떤 접미사를 끝에서 떼어 맨 앞으로 옮기면 다른 문자열이 되는 경우를 말합니다. 예를 들어 ababba와 abbaab는 순환 동치이지만, ababba와 ababab는 순환 동치가 아닙니다. 모든 문자열은 자기 자신과 순환 동치입니다.

길이가 nn인 문자열 tt가 주어집니다. 다음 세 조건을 모두 만족하는, 길이가 같은 접두사 pp와 접미사 ss를 찾으세요.

  • pp와 ss가 순환 동치이다.
  • 공통 길이가 n2\frac{n}{2} 이하이다. (즉, tt 안에서 pp와 ss가 서로 겹치지 않는다.)
  • 공통 길이가 최대이다.

입력

첫째 줄에 문자열 tt의 길이 nn이 주어집니다. (1≤n≤1061 \le n \le 10^6)

둘째 줄에 영어 소문자로 이루어진 문자열 tt가 주어집니다.

출력

위 조건을 만족하는 접두사 pp와 접미사 ss의 최대 공통 길이를 정수 하나로 출력합니다.

예제1

  1. 예제 1

    입력
    15
    ababbabababbaab
    
    예상 출력
    6