함수와 쿼리

배열 a와 점화식 f(i,j)=min(f(i-1,j),f(i-1,j-1))+a_j가 주어질 때, 최대 1e5개의 f(x,y) 질의에 답한다.

어려움9동적 계획법분할 정복수학조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이가 nn인 배열 a=(a1,a2,,an)a = (a_1, a_2, \dots, a_n)이 있다. 함수 ff를 다음과 같이 정의한다.

f(1,j)=aj(1jn)f(1,\, j) = a_j \qquad (1 \le j \le n)

f(i,j)=min(f(i1,j), f(i1,j1))+aj(2in, ijn)f(i,\, j) = \min(f(i-1,\, j),\ f(i-1,\, j-1)) + a_j \qquad (2 \le i \le n,\ i \le j \le n)

배열 aa와 쿼리 mm개가 주어진다. 각 쿼리는 두 정수 xix_i, yiy_i로 이루어지고 f(xi,yi)f(x_i, y_i)의 값을 묻는다. 모든 쿼리의 답을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 aa의 크기 nn (1n1051 \le n \le 10^5)이 주어진다.

둘째 줄에 a1,a2,,ana_1, a_2, \dots, a_n이 공백으로 구분되어 주어진다. (0aj1040 \le a_j \le 10^4)

셋째 줄에 쿼리의 개수 mm (1m1051 \le m \le 10^5)이 주어진다. 이어지는 mm개의 줄에 쿼리가 한 줄에 하나씩 xix_i, yiy_i 순서로 주어진다. (1xiyin1 \le x_i \le y_i \le n)

출력

쿼리가 주어진 순서대로 f(xi,yi)f(x_i, y_i)의 값을 한 줄에 하나씩 출력한다.