Problem K: K 公益活动

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $22$ 正确数量 $15$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签
一条从 1到n的数轴上有 m名志愿者。
每名志愿者有一条行进路线,可以用三个整数 ti,ci,pi 来描述第i名志愿者的行进路线。
具体来说,如果 ci >0,则第 i名志愿者会在ti时刻从 pi点出发以每秒1单位长度的速度向 n 号点方向出发前进ci时刻后停下;如果ci<0,则第i名志愿者会在ti时刻从pi点出发以每秒 1 单位长度的速度向 1 号点方向出发前进 -ci时刻后停下。

你要安排这些志愿者中的一部分来完成一些完成公益任务。第 i名志愿者仅在[ti, ti+ |ci|]时刻工作,他可以在这段时间里的任意整数时刻交接任务。而志愿者能进行任务 i的交付当且仅当在某一时刻两名志愿者位于同一个整点上。具体来说,i,j号志愿者可以在整数时刻t,整点位置 p进行交接任务,当且仅当:



其中 sgn(x) 为符号函数。
现在你收到了q个任务需求,其中第i份任务包含两个整数 wi,xi,表示这份任务希望你将任务在最晚 wi 时刻从1号点运送某些物品到xi号点,你想算出完成这项任务最少需要安排多少名志愿者。如果无解,即安排了所有志愿者也无法完成订单,则输出 -1。注意这 q 份订单是相互独立的,所有志愿者每次都需要重新安排。

第一行包含两个整数 n,m表示数轴的长度及志愿者的数量。

接下来 m行每行包括三个整数 ti,ci,pi描述该志愿者的运送路线。
接下来一行一个整数q表示任务的数量。
接下来 q行每行两个整数wi,xi表示这份任务要求的最晚时刻及送达地点。
保证1≤n, ti≤2000,1 ≤ m≤ 106,1≤q≤105,志愿者只在1到n的数轴上移动。

输出q行,其中第 i 行包含一个整数表示完成第 i 份订单最少需要安排多少名志愿者,或输出﹣1表示任务无法完成。
10 10
2 1 5
5 4 3
8 7 1
9 8 2
3 1 7
6 3 6
9 6 4
6 2 8
6 7 -2
10 8 -8
4
11 10
12 9
13 10
14 10
4
3
4
3