#DX0048. 寻找宝藏

寻找宝藏

题目描述

你得到了一张藏宝图,这上面标记了埋藏在地底下的 nn 个海盗藏宝箱,编号依次为 11nn,第 ii 个宝箱的坐标是 (i,pii,p_i),打开它你将得到 viv_i 枚金币。

你现在位于 (0,00,0),每次你可以选择从 (x,yx,y) 移动到 (x+1,yx+1,y) 或者 (x,y+1x,y+1),当你位于某个宝箱正上方时,你将可以挖出它并拿走里面的所有金币。

不幸的是,有一个危险的陷阱区域没有被标记出来!通过多方调研,你得知这是一个边平行坐标轴的矩形区域,它是 mm 种可能的位置分布之一。请对于每种可能的情况分别计算按照最优路线你能拿走多少金币。

假设陷阱区域的位置分布是第 ii 种可能,假设它是以 (x1,y1x_1,y_1) 和 (x2,y2x_2,y_2) 为对顶点的矩形,那么 (x,yx,y) 是陷阱当且仅当 x1xx2x_1≤x≤x_2y1yy2y_1≤y≤y_2。你的路线不能途径任何陷阱点。当然,你只需要考虑当前的第 ii 个矩形,不需要考虑其它 m1m−1 个矩形。

输入格式

第一行包含一个正整数 TT (1T1001≤T≤100),表示测试数据的组数。

每组数据第一行包含两个正整数 n,mn,m (1n,m3000001≤n,m≤300000),分别表示宝箱的数量以及可能的矩形数。

接下来 nn 行,第 ii 行包含两个正整数 pi,vip_i,v_i (1pin,1vi1091≤p_i≤n, 1≤v_i≤10^9),依次描述每个宝箱。输入数据保证 pip_i 互不相同。

接下来 mm 行,每行四个正整数 x1,y1,x2,y2x_1,y_1,x_2,y_2 (1x1x2n,1y1y2n1≤x_1≤x_2≤n, 1≤y_1≤y_2≤n),依次描述每种可能的矩形陷阱区域。

输入数据保证 n1500000∑n≤1500000,且 m1500000∑m≤1500000

输出格式

对于每组数据输出 mm 行,其中第 ii 行输出一个整数,即在危险陷阱区域是第 ii 个矩形的情况下你最多能拿走的金币数量。

输入样例

1
3 5
2 4
3 3
1 5
1 1 1 1
1 1 1 3
2 1 3 3
1 1 3 2
1 1 3 3

输出样例

7
5
4
3
0