题目描述
某条铁路线(非环线)有 n 站,依次编号为 1,…,n。这条线路上跑着 n 类列车,编号为 1,…,n。每种列车都是双向运行的。
这条铁路线上的每个车站都有个旅客流量,旅客流量是一个 ≤n 的正整数。车站 i (1≤i≤n) 的旅客流量为 ai。
第 j 类列车(1≤j≤n)在且只在旅客流量 ≥j 的车站停车。一名旅客可以从 x 站出发,乘上任意一辆在 x 停车的列车,沿着列车的方向行驶到该列车的下一个停车的车站 y。如果列车是向左行驶的,即 y<x,那么旅客需要花费 lx ddtt 币;否则列车是向右行驶的,即 y>x,此时旅客需要花费 rx ddtt 币。
数据保证对于 1≤i≤n−1,有 li≤li+1、ri≥ri+1。
现有 q 名旅客,依次编号为 1,…,q,旅客 k (1≤k≤q) 的起点是车站 sk,终点是 tk (1≤sk,tk≤n)。假设这些旅客只能靠这条铁路线移动。
对于每名旅客,求这名旅客到达终点至少需要花费多少 ddtt 币。保证同一名旅客的起点与终点不同。允许走回头路。多组测试。
输入格式
第一行一个正整数 T (1≤T≤3⋅104),表示数据组数。
接下来对于每组数据:
第一行包含两个整数 n,q (1≤n,q≤3⋅105),表示车站数量和旅客数量。
第二行包含 n 个整数 a1,…,an,表示车站的旅客流量。
接下来 n 行,每行两个正整数 li,ri (1≤li,ri≤109)。
接下来 q 行,每行两个正整数 sk,tk (1≤sk,tk≤n)。
输出格式
对每名旅客,输出他到达终点至少需要花费的 ddtt 币数量。
样例
样例输入 1
1
9 6
1 7 3 4 9 9 1 2 2
1 11
1 11
5 11
7 10
8 6
8 4
8 3
9 1
10 1
1 9
5 1
3 1
7 6
2 6
1 1
样例输出 1
33
9
6
8
17
0
数据范围
保证 ∑n,∑q≤3⋅105,1≤li,ri≤109,1≤sk,tk≤n。
保证 li≤li+1、ri≥ri+1。
| 子任务 |
分值 |
限制 |
| Subtask 1 |
3 pts |
保证 ∑n≤400 |
| Subtask 2 |
14 pts |
保证 ∑n,∑q≤5000 |
| Subtask 3 |
21 pts |
保证 ∑n≤5000 |
| Subtask 4 |
20 pts |
保证 li=ri=1 (1≤i≤n) |
| Subtask 5 |
42 pts |
无特殊限制 |