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

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

마법의 구간

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

요약
각 쿼리마다 구간 [L,R] 안에서 모든 원소가 첫 값과 마지막 값 사이에 들어가는 가장 긴 부분배열 길이를 구합니다.
난이도

어려움10점 중 9점

유형
분할 정복, 세그먼트 트리, 스택
정답자
아직 제출이 없습니다

문제

루카가 마녀 마리차의 집에 들어서자, 마리차는 자기가 가진 NN개의 수로 이루어진 배열 AA를 두고 질문을 던지기 시작한다. 질문 하나는 두 정수 LL과 RR로 이루어지고, 배열에서 ALA_L부터 ARA_R까지 이어지는 구간을 가리킨다.

루카는 질문마다 그 구간 안에 들어 있는 연속한 구간 중 마법 구간인 것의 최대 길이를 답해야 한다. 구간 전체를 골라도 된다.

구간에 들어 있는 모든 값이 첫 번째 값과 마지막 값 사이에 있으면 그 구간은 마법 구간이다. 즉 Al,Al+1,…,ArA_l, A_{l+1}, \dots, A_r가 마법 구간이라는 것은 l≤k≤rl \le k \le r인 모든 kk에 대해 min⁡(Al,Ar)≤Ak≤max⁡(Al,Ar)\min(A_l, A_r) \le A_k \le \max(A_l, A_r)가 성립한다는 뜻이다.

예를 들어 [1,3,1,2,4][1, 3, 1, 2, 4]와 [4,1,1,2,1][4, 1, 1, 2, 1]은 마법 구간이지만 [3,3,4,1][3, 3, 4, 1]은 마법 구간이 아니다. 길이가 1인 구간은 언제나 마법 구간이므로 답은 항상 1 이상이다.

입력

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

둘째 줄에 배열의 원소 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤1091 \le A_i \le 10^9)

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

이어지는 QQ개의 줄에 질문의 두 정수 LL과 RR가 순서대로 주어진다. (1≤L≤R≤N1 \le L \le R \le N)

출력

ii번째 줄에 ii번째 질문의 답을 정수 하나로 출력한다.

예제6

  1. 예제 1

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

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

    입력
    1
    1000000000
    1
    1 1
    
    예상 출력
    1
    
  4. 예제 4

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

    입력
    10
    1 2 3 4 5 6 7 8 9 10
    5
    1 10
    4 9
    7 7
    2 3
    5 10
    
    예상 출력
    10
    6
    1
    2
    6
    
  6. 예제 6

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