생활관 건설하기
시간 제한2초메모리 제한1024 MB
각 질의 구간 [l, r]에서 한 높이로 맞추는 데 병사 M명 이하가 드는 가장 긴 연속 구간의 길이를 구합니다. 높이를 x만큼 바꾸는 비용은 x^2입니다.
문제
최근 생활관 건물이 무너지고 있다는 보고를 받은 중대장 만식이는 하루빨리 부대의 새 생활관을 짓고자 한다. 부대 안에서 부지를 찾아보니, 길이가 인 땅이 번부터 번까지 왼쪽에서 오른쪽으로 일렬로 놓인 오래된 부지가 있었다.
생활관은 부지에 한 채만 지을 수 있으며, 높이가 같은 연속된 번호의 땅 위에 지어야 한다. 그러나 오랫동안 방치된 부지라 땅의 높이가 제각각이다. 그래서 만식이는 병사를 투입해 땅을 고르고 높이를 같게 맞추려 한다. 번 땅의 높이는 이고, 각 땅의 높이를 만큼 높이거나 낮추려면 그 땅에서 명의 병사가 작업해야 한다. 높이는 반드시 정수만큼만 바꿀 수 있다. 현재 부대의 병사는 명뿐이므로, 만식이는 최대 명의 병사만 작업에 투입하여 생활관을 지을 수 있는 땅의 길이를 최대화하려 한다.
그런데 작업 직전, 본부에서 공문이 내려왔다. 생활관은 부지 내 번 땅부터 번 땅까지 구간 안의 땅에만 지을 수 있다는 내용이다. 공문의 숫자가 깨져서 과 을 정확히 읽을 수 없었다. 재발송을 기다릴 수 없었던 만식이는 미리 개의 구간 마다 생활관을 지을 수 있는 땅의 최대 길이를 구하려 한다. 만식이를 위해 개의 질문에 답하라.
입력
첫 번째 줄에 부지의 길이 과 병사 수 이 공백으로 구분되어 주어진다. (, )
두 번째 줄에 각 땅의 높이 이 공백으로 구분되어 주어진다. ()
세 번째 줄에 질문의 개수 가 주어진다. ()
이후 줄에 걸쳐 각 줄에 구간의 범위 와 가 공백으로 구분되어 주어진다. ()
출력
줄에 걸쳐, 각 줄에 번째 구간에서 생활관을 지을 수 있는 땅의 최대 길이를 출력한다.