Farmer John 的牧场可以看作一个 $N\times M$ ($2\le N\le 10^9$, $2\le M\le 2\cdot 10^5$) 的二维网格(想象成一个巨大的棋盘)。从上往下数第 $x$ 行、从右往左数第 $y$ 列的单元格记为 $(x,y)$,其中 $x\in [1,N], y\in [1,M]$。此外,对于每个 $y\in [1,M]$,第 $y$ 列关联一个代价 $c_y$ ($1\le c_y\le 10^9$)。
Bessie 从单元格 $(1,1)$ 出发。如果她当前位于单元格 $(x,y)$,她可以执行以下操作之一:
- 如果 $y
- 如果 $x
- 如果 $x
给定 $Q$ ($1\le Q\le 2\cdot 10^5$) 个独立查询,每个查询的形式为 $(x_i,y_i)$ ($x_i\in [1,N], y_i\in [1,M]$),计算 Bessie 从 $(1,1)$ 移动到 $(x_i,y_i)$ 的最小总代价。
输入格式
第一行包含 $N$ 和 $M$。
第二行包含 $M$ 个空格分隔的整数 $c_1,c_2,\ldots,c_M$。
第三行包含 $Q$。
最后 $Q$ 行,每行包含两个空格分隔的整数 $x_i$ 和 $y_i$。
输出格式
输出 $Q$ 行,包含每个查询的答案。
注意,本题涉及的整数较大,可能需要使用 64 位整数数据类型(例如 C/C++ 中的 long long)。
样例
样例输入 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
样例输出 1
0 1 2 3 4 1 5 11 19 29 2 9 20 35 54 3 13 29 49 69
网格形式的输出:
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-3 满足 $N,M\le 2000$。
- 测试点 4-8 满足 $c_2>c_3>\cdots>c_M$。
- 测试点 9-15 满足 $N\le 2\cdot 10^5$。
- 测试点 16-20 无额外限制。