만드는 중입니다

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

줄넘기

면접 대비

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

요약
각 질의 구간 [l, r] 안에서 양 끝 높이가 같고 사이에 같은 높이가 없는 가장 긴 구간의 학생 수를 구합니다. 해당하는 구간이 없으면 0을 출력합니다.
난이도

보통10점 중 5점

유형
해시맵, 정렬, 구현
정답자
아직 제출이 없습니다

문제

NN명의 학생들이 단체 줄넘기를 하기 위해 일렬로 서 있습니다. ii번 학생의 키는 AiA_i입니다. 이 중 몇 명의 학생들을 뽑아 단체 줄넘기를 하려고 합니다. 이 과정은 아래와 같이 이루어집니다.

먼저, 단체 줄넘기 대표로 연속한 번호를 가진 학생들을 뽑습니다. ss번 학생부터 ee번 학생까지를 뽑았다고 해 봅시다. 이때, ss번 학생과 ee번 학생은 줄을 돌리고, 사이에 있는 나머지 학생들이 줄을 넘습니다.

줄을 잡는 두 학생의 키가 다르면 줄을 돌리기 어렵기 때문에, 줄을 잡는 두 학생의 키는 같아야 합니다. (즉, As=AeA_s = A_e) 또한, 그 사이에 키가 같은 학생이 또 있으면 방해되기 때문에, 나머지 학생들의 키는 모두 AsA_s와 달라야 합니다.

QQ개의 질문이 주어집니다. ii번째 질문에서 lil_i 이상 rir_i 이하의 번호를 가진 학생들만 줄넘기에 참여할 수 있을 때, 줄넘기에 참여할 수 있는 학생 수의 최댓값을 구해야 합니다. 줄넘기가 이루어질 수 없다면 0을 출력합니다.

입력

첫 줄에는 학생의 수 NN이 주어집니다.

둘째 줄에는 각 학생의 키 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어집니다.

셋째 줄에는 질문의 수 QQ가 주어집니다.

이어지는 QQ개의 줄에는 각각 두 정수 lil_i, rir_i가 주어집니다.

출력

QQ개의 질문에 대해, 줄넘기에 참여할 수 있는 학생 수의 최댓값을 한 줄에 하나씩 출력합니다. 줄넘기를 할 수 없다면 0을 출력합니다.

제한

  • 2≤N,Q≤5×1052 \le N, Q \le 5 \times 10^5
  • 1≤Ai≤1091 \le A_i \le 10^9 (1≤i≤N1 \le i \le N)
  • 1≤li<ri≤N1 \le l_i < r_i \le N (1≤i≤Q1 \le i \le Q)

예제1

  1. 예제 1

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