정원
시간 제한3초메모리 제한512 MB
정렬된 나무 높이가 주어질 때 매일 오른쪽 나무와의 차이가 가장 작은 가장 왼쪽 나무가 1 자란다. 각 K일 뒤 가장 큰 나무와 가장 작은 나무의 높이 차를 구합니다.
문제
현욱의 집 앞 정원에는 나무 그루가 있다(). 나무의 높이는 이상 이하의 정수이고, 높이가 오름차순이 되도록 심어져 있다. 즉, 번째 나무의 높이를 라고 하면 항상 이 성립한다.
정원의 나무 중 아래 두 조건을 모두 만족하는 나무는 하루가 지나면 높이가 증가한다.
- 바로 오른쪽 나무보다 높이가 낮다().
- 이런 나무들 중에서 바로 오른쪽 나무와의 높이 차이가 가장 작다.
조건을 만족하는 나무가 여러 그루라면 그중 가장 왼쪽에 있는 나무만 자란다. 즉, 하루에 최대 한 그루의 높이만 자란다. 예를 들어 나무의 높이가 이라고 하자. 바로 오른쪽 나무와의 높이 차이가 가장 작은 나무는 2번째와 3번째 나무이고, 차이는 모두 이다. 이 중 가장 왼쪽의 2번째 나무의 높이가 자란다.
현욱은 오늘부터 일 후에 가장 높은 나무와 가장 낮은 나무의 높이 차이가 얼마인지 알고 싶어졌다(). 현욱의 질문이 번 주어질 때(), 각 질문에 답하는 프로그램을 작성하라.
입력
첫 줄에 나무의 수 과 질문의 수 가 주어진다().
둘째 줄에 나무의 높이 가 순서대로 공백으로 구분되어 개 주어진다(). 입력은 항상 을 만족한다.
셋째 줄부터 줄에 걸쳐 질문이 주어진다. 모든 는 이상 이하의 정수이다.
출력
각 질문에 대해, 일 후 정원에서 가장 높은 나무와 가장 낮은 나무의 높이 차이를 한 줄에 하나씩 출력한다.