만드는 중입니다

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

최소 비용 경로

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

요약
N×M 격자에서 (1, 1)부터 질의된 칸 (x, y)까지 가는 최소 비용을 구합니다. 열 이동은 x², 행 이동은 열의 비용 c_y입니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

파머 존의 목초지는 N×MN\times M 크기의 정사각형 칸으로 이루어진 격자이다 (2≤N≤1092\le N\le 10^9, 2≤M≤2⋅1052\le M\le 2\cdot 10^5). 위에서 xx번째 행, 오른쪽에서 yy번째 열에 있는 칸을 (x,y)(x,y)로 나타내며, x∈[1,N]x\in[1,N], y∈[1,M]y\in[1,M]이다. 각 열 y∈[1,M]y\in[1,M]에는 비용 cyc_y (1≤cy≤1091\le c_y\le 10^9)가 정해져 있다.

베시는 (1,1)(1,1)에서 출발한다. 칸 (x,y)(x,y)에 있을 때 다음 중 하나를 할 수 있다.

  • y<My<M이면 비용 x2x^2을 내고 다음 열로 이동한다 (yy가 1 증가한다).
  • x<Nx<N이면 비용 cyc_y를 내고 다음 행으로 이동한다 (xx가 1 증가한다).

QQ개의 질의 (1≤Q≤2⋅1051\le Q\le 2\cdot 10^5)가 주어지며, 각 질의는 칸 (xi,yi)(x_i,y_i)이다. 각 질의마다 (1,1)(1,1)에서 (xi,yi)(x_i,y_i)까지 이동하는 데 드는 최소 총 비용을 구하라. 질의들은 서로 독립이다.

입력

첫 줄에 NN과 MM이 주어진다.

둘째 줄에는 공백으로 구분된 정수 c1,c2,…,cMc_1, c_2, \ldots, c_M이 주어진다.

셋째 줄에 QQ가 주어진다.

이후 QQ개의 줄에 각각 공백으로 구분된 정수 xix_i와 yiy_i가 주어진다.

출력

QQ개의 줄에 각 질의의 답을 출력한다.

값이 커질 수 있으므로 C나 C++에서는 "long long" 같은 64비트 정수형을 사용해야 할 수 있다.

힌트

답을 격자 형태로 나타내면 다음과 같다.

    1  2  3  4
  *--*--*--*--*
1 | 0| 1| 2| 3|
  *--*--*--*--*
2 | 1| 5| 9|13|
  *--*--*--*--*
3 | 2|11|20|29|
  *--*--*--*--*
4 | 3|19|35|49|
  *--*--*--*--*
5 | 4|29|54|69|
  *--*--*--*--*

예제1

  1. 예제 1

    입력
    5 4
    1 100 100 20
    20
    1 1
    2 1
    3 1
    4 1
    5 1
    1 2
    2 2
    3 2
    4 2
    5 2
    1 3
    2 3
    3 3
    4 3
    5 3
    1 4
    2 4
    3 4
    4 4
    5 4
    
    예상 출력
    0
    1
    2
    3
    4
    1
    5
    11
    19
    29
    2
    9
    20
    35
    54
    3
    13
    29
    49
    69