만드는 중입니다

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

배구

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

요약
기둥 n개의 높이와 m개의 구간이 주어졌을 때, 각 구간에서 높이가 같고 사이에 더 높은 기둥이 없는 두 기둥 사이의 최대 거리를 구합니다.
난이도

보통10점 중 7점

유형
분할 정복, 배열, 스택
정답자
아직 제출이 없습니다

문제

체육 시간에 Foma가 중요한 일로 학교를 나가야 했다. 아이들이 학교 안을 돌아다니다가 그의 부재를 들키지 않도록, 그는 학생들에게 과제를 냈다.

학교 부지에 기둥 nn개가 1미터 간격으로 일렬로 서 있다. ii번째 기둥의 높이는 aia_i이다. 두 기둥의 높이가 같고 그 사이에 더 높은 기둥이 없으면, 두 기둥 사이에 배구 네트를 칠 수 있다. 학생마다 기둥 구간이 하나씩 주어지고, 학생은 그 구간에서 칠 수 있는 네트 중 가장 긴 것의 길이를 구해야 한다. 네트의 길이는 네트가 걸린 두 기둥 사이의 거리이다.

학생들은 이 문제를 푸는 데 시간이 많이 걸릴 것을 알고 도움을 요청했다.

입력

첫 줄에 두 정수 nn과 mm이 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, 1≤m≤2⋅1051 \le m \le 2 \cdot 10^5). 각각 기둥의 개수와 학생의 수이다. 둘째 줄에는 기둥의 높이 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤1091 \le a_i \le 10^9). 다음 mm개의 줄에는 각각 두 정수 ll과 rr이 주어진다 (1≤l≤r≤n1 \le l \le r \le n). 이는 한 학생에게 배정된 구간이다.

출력

mm개의 줄을 출력한다. ii번째 줄에는 ii번째 학생의 답을 출력한다.

예제2

  1. 예제 1

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

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