만드는 중입니다

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

서로 다른 최대 구간 쿼리

면접 대비

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

요약
길이 N의 수열과 Q개의 구간 [l, r]이 주어질 때, 각 구간 안에서 모든 값이 서로 다른 가장 긴 연속 부분 구간의 길이를 구합니다.
난이도

보통10점 중 6점

유형
배열, 이분 탐색
정답자
아직 제출이 없습니다

문제

길이 NN의 수열 A1,A2,…,ANA_1, A_2, \ldots, A_N이 주어진다. 다음 쿼리를 처리하자.

  • ll rr: l≤s≤e≤rl \le s \le e \le r을 만족하는 구간 [s,e][s, e] 중에서 서로 다른 수만 있는 구간의 최대 크기를 출력한다. 구간 [s,e][s, e]의 크기는 e−s+1e-s+1이다.

서로 다른 수만 있는 구간 [s,e][s, e]에는 Ai=AjA_i = A_j인 ii와 jj가 있어선 안 된다. (s≤i<j≤es \le i < j \le e)

입력

첫째 줄에 NN이 주어진다. (1≤N≤500 0001 \le N \le 500\,000)

둘째 줄에 정수 수열 A1,A2,…,ANA_1, A_2, \ldots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤N1 \le A_i \le N)

셋째 줄에 QQ가 주어진다. (1≤Q≤500 0001 \le Q \le 500\,000)

넷째 줄부터 Q+3Q+3번째 줄까지 쿼리가 한 줄에 하나씩 주어진다. (1≤l≤r≤N1 \le l \le r \le N)

출력

쿼리마다 답을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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