만드는 중입니다

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

구간이 이븐하지 않아요.

면접 대비

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

요약
연속된 부분 배열을 가운데에서 반으로 나눴을 때 두 부분의 원소가 중복까지 똑같은 가장 긴 길이를 구합니다.
난이도

보통10점 중 4점

유형
슬라이딩 윈도우, 해시맵, 배열
정답자
아직 제출이 없습니다

문제

길이가 같은 두 수열 ss와 tt가 다음의 연산을 원하는 만큼 반복해 서로 같아질 수 있다면, 두 수열은 서로 이븐하다.

  • 1≤i<j≤∣s∣1 \leq i < j \leq |s|를 만족하는 두 양의 정수 ii와 jj를 골라 sis_i와 sjs_j의 값을 바꾼다.

길이 NN의 수열 AA가 주어진다. A[l,r]=[Al,Al+1,…,Ar]A[l,r]=[A_{l},A_{l+1},\dots,A_{r}]을 AA의 ll번째 원소부터 rr번째 원소까지만을 포함하는 연속된 부분 수열이라고 하자. 다음 조건을 만족하는 A[l,r]A[l,r]의 최대 길이를 구한다.

m=⌊l+r2⌋m=\left\lfloor\frac{l+r}{2}\right\rfloor라고 하자. 이때 A[l,m]A[l,m]과 A[m+1,r]A[m+1,r]이 서로 이븐하다.

입력

첫 번째 줄에 수열 AA의 길이인 정수 NN이 주어진다. (1≤N≤5 0001 \leq N \leq 5\,000)

두 번째 줄에 수열 AA의 원소 A1,A2,…,ANA_{1},A_{2},\dots,A_{N}이 공백으로 구분되어 주어진다. (1≤Ai≤1091 \leq A_i \leq 10^{9})

출력

연속된 부분 수열 A[l,r]A[l,r]을 절반으로 나눴을 때 얻는 두 수열이 서로 이븐할 때, A[l,r]A[l,r]의 최대 길이를 출력한다.

그러한 연속된 부분 수열이 없다면 00을 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 1 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5
    1 2 3 2 3
    
    예상 출력
    4