QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 1024 MB Total points: 100
[+1]

# 8366. 火车旅行

Statistics

题目描述

某条铁路线(非环线)有 n 站,依次编号为 1,,n。这条线路上跑着 n 类列车,编号为 1,,n。每种列车都是双向运行的。

这条铁路线上的每个车站都有个旅客流量,旅客流量是一个 n 的正整数。车站 i(1in) 的旅客流量为 ai

j 类列车 (1jk) 在且只在旅客流量 j 的车站停车。一名旅客可以从 x 站出发,乘上任意一辆在 x 停车的列车,沿着列车的方向行驶到该列车的下一个停车的车站 y 。如果列车是向左行驶的,即 y<x ,那么旅客需要花费 lx ddtt 币,否则列车是向右行驶的,即 y>x ,此时旅客需要花费 rx ddtt 币。

数据保证对于 1in1 ,有 lili+1,riri+1

现有 q 名旅客,依次编号为 1,,q,旅客 k(1kq) 的起点是车站 sk,终点是 tk (1sk,tkn)。假设这些旅客只能靠这条铁路线移动。

对于每名旅客,求这名旅客到达终点至少需要花费多少 ddtt 币。保证同一名旅客的起点与终点不同。允许走回头路。多组测试。

输入格式

第一行一个正整数 T(1T3104) ,表示数据组数。

接下来对于每组数据,第一行包含两个整数 n,q(1n,q3105) ,表示车站数量和旅客数量。

第二行包含 n 个整数 a1,,an ,表示车站的旅客流量。

接下来 n 行,每行两个正整数 li,ri(1li,ri109,lili+1,riri+1)

接下来 q 行,每行两个正整数 sk,tk(1sk,tkn)

输出格式

对每名旅客,输出他到达终点至少需要花费的 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,q3105,1li,ri109,1sk,tkn

保证 lili+1,riri+1

subtask1(3pts):保证 n400

subtask2(14pts):保证 n,q5000

subtask3(21pts):保证 n5000

subtask4(20pts):保证 li=ri=1(1in)

subtask5(42pts):无特殊限制。

时间限制:5s

空间限制:1GB