수열과 쿼리 4

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

요약
각 질의 구간 [l,r]에서 같은 값을 가지는 두 위치 사이 거리의 최댓값을 구한다.
난이도

보통10점 중 7점

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

문제

1 이상 KK 이하의 정수로 이루어진 길이 NN의 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. 다음 쿼리를 처리하는 프로그램을 작성하시오.

  • l r: max⁡{∣x−y∣:l≤x, y≤r, Ax=Ay}\max\{|x - y| : l \le x,\, y \le r,\ A_x = A_y\}를 출력한다.

xx와 yy가 같은 경우도 조건을 만족하므로 답은 항상 0 이상이다.

입력

첫째 줄에 수열의 길이 NN (1≤N≤100 0001 \le N \le 100\,000)과 KK (1≤K≤100 0001 \le K \le 100\,000)가 주어진다.

둘째 줄에 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. (1≤Ai≤K1 \le A_i \le K)

셋째 줄에 쿼리의 개수 MM (1≤M≤100 0001 \le M \le 100\,000)이 주어진다.

넷째 줄부터 MM개의 줄에 각 쿼리의 ll과 rr가 한 줄에 하나씩 주어진다. (1≤l≤r≤N1 \le l \le r \le N)

출력

쿼리마다 답을 한 줄에 하나씩 입력에 주어진 순서대로 출력한다.

예제2

  1. 예제 1

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

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