时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小王家的后院有一块菜园,并且小王非常的喜欢吃韭菜,这天小王打算在自家的菜园种植韭菜。
起初小王种植了n棵韭菜的种子,此时n棵韭菜的高度都为0,由于小王每天都会给所有的韭菜施肥,所以韭菜生长的速度飞快,但因为韭菜种子质量不同,施肥后每颗韭菜每天以固定a[i]的速度生长。
接下来的日子里,小王有m天想要吃韭菜,对于第D[i]天小王会把所有高度高于B[i]的韭菜收割到B[i],小王想知道每次他收割韭菜的总收割量。
输入描述:
第一行给定一个t,代表t组测试数据。(1<=t<=10)
对于每组数据,给定n,m代表有n棵韭菜,m次收割操作。
(1<=n,m<=1e5,∑n,∑m<=5e5)
接下来一行,给定每棵韭菜每天可以增长的高度a[i]。(1<=a[i]<=1e5)
下面m行,每行给定D[i],B[i],代表第D[i]天收割高于B[i]的韭菜,D[i]保证单调递增。(1<=D[i]<=1e9,1<=B[i]<=1e9)
(数据保证没有任何时刻韭菜高度的总和超出long long范围)
输出描述:
对于每组测试数据输出m行,每行代表收割得到韭菜高度的总和。
示例1
输入
复制
1
4 4
1 3 4 2
1 1
2 0
3 3
4 1000