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

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

균형 잡힌 줄 세우기

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

요약
소들의 키 배열이 주어질 때, 각 구간 [A, B]에서 최댓값과 최솟값의 차이를 구한다.
난이도

보통10점 중 5점

유형
세그먼트 트리, 배열
정답자
아직 제출이 없습니다

문제

매일 젖을 짜기 위해 농부 존의 소 NN마리(1≤N≤50,0001 \le N \le 50{,}000)는 항상 같은 순서로 한 줄로 섭니다. 어느 날 존은 소 몇 마리와 얼티밋 프리스비 게임을 하기로 합니다. 간단하게 하기 위해, 그는 젖 짜는 줄에서 연속한 구간의 소들을 골라 게임에 참여시킵니다. 하지만 모든 소가 즐겁게 놀려면 키 차이가 너무 크면 안 됩니다.

존은 소들의 그룹 QQ개(1≤Q≤200,0001 \le Q \le 200{,}000)와 각 소의 키(1≤키≤1,000,0001 \le \text{키} \le 1{,}000{,}000)를 목록으로 만들었습니다. 각 그룹에 대해, 그 그룹에서 키가 가장 작은 소와 가장 큰 소의 키 차이를 구해 주세요.

입력

  • 첫째 줄: 두 정수 NN과 QQ가 공백으로 구분되어 주어집니다.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에는 ii번 소의 키를 나타내는 정수 하나가 주어집니다.
  • N+2N+2째 줄부터 N+Q+1N+Q+1째 줄까지: 두 정수 AA와 BB(1≤A≤B≤N1 \le A \le B \le N)가 주어지며, AA번부터 BB번까지(양 끝 포함)의 소 구간을 의미합니다.

출력

  • QQ개의 줄: 각 줄에 해당 질의 구간에서 키가 가장 큰 소와 가장 작은 소의 키 차이를 나타내는 정수 하나를 출력합니다.

예제1

  1. 예제 1

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