Game Arrangement

Accepts: 1
Submissions: 15
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
呃喵很贪玩,除了翘课和水群,她业余时间里还喜欢玩游戏。像dato,cf等都是她喜欢玩的游戏。
可是读过前面题的人都知道,呃喵的时间非常紧张,翘课的时间本来就不多,还要水群以及应付考试。
于是,她想要合理安排游戏方案,使得在翘课的时间范围内,玩尽可能多场游戏。
已知呃喵的翘课得到的空闲时间为n段,告诉你每段空闲时间的开始时间和结束时间。
同时呃喵有m个游戏想要玩,对于每个游戏,告诉你玩这个游戏的感兴趣时间域(就是只有在某个区间时间内呃喵才会想要玩这个游戏),并且告诉你玩该游戏一局所需要花费的时间。
呃喵一旦开始一局游戏就必须完成,不能暂停。但不要忘记呃喵只能在翘课时间段且该游戏感兴趣时间域内进行某种游戏。
现在希望你安排出一种最合理的方案,使得呃喵能够尝试尽可能多局的游戏。让你输出最终完成游戏的局数。
输入描述
第一行为一个整数T,代表数据组数。
接下来,对于每组数据——
第一行两个整数n与m,分别表示呃喵的翘课时间段数,以及呃喵想要玩的游戏种数。
接下来有n行,对于其中第i行有两个正整数L[i], R[i],表示在L[i], L[i] + 1, ..., R[i] - 1, R[i] 这R[i] - L[i] + 1个时间点时,呃喵可以翘课玩游戏。
接下来有m行,对于其中第i行有三个正整数l[i], r[i], d[i],表示只有在l[i], l[i] + 1, ..., r[i] - 1, r[i] 这r[i] - l[i] + 1个时间点,呃喵才可以玩第i类游戏。
倘若呃喵花费了其中的一个长为d[i]的连续时间段(当然该时间段也要是翘课时间,上课时就算想玩也是玩不了的>.<),呃喵就可以完成1局第i类游戏。
最后还要明确,呃喵协调多开能力很差,在一个时间点,她只能参与到一种游戏的一局中去。若仍然有疑问可以参照样例理解。

数据保证——
1 <= T <= 1000
1 <= L[1] <= R[1] < L[2] <= R[2] < ... < L[n] <= R[n] <= 10^9
1 <= l[] <= r[] <= 10^9
1 <= d[] <= 10^9
对于99%的数据,1 <= n, m <= 100
对于100%的数据,1 <= n, m <= 10000
输出描述
对于每组数据,输出一行。
该行有1个整数,表示呃喵可以尝试的最多游戏局数。
输入样例
(为了方便阅读,样例输入中数据组间中会额外添加一行空行)
4
2 2
1 1
2 5
1 3 1
4 5 2

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

3 1
1 1
3 3
5 5
1 5 2

1 1
1 10
3 5 2
输出样例
4
2
0
1
Hint
对于样例1:[1,5]为翘课区间。呃喵可以选择在[1,3]时刻玩游戏1,可玩3局;在[4,5]时刻玩游戏2,可玩1局。
对于样例2:[1,1]∪[3,4]为翘课区间。呃喵可以选择在[1,1]与[3,3]时刻玩游戏1,可玩2局;在[4,4]时刻不能玩游戏2,因为不够一局游戏。
对于样例3:呃喵无法完成任意一局游戏,尽管有3 * 1的零碎翘课区间,但是因为没有长度为2的连续区间,所以呃喵依然无法游戏。
对于样例4:呃喵只能在[3, 4] 或者[4, 5]区间选择一个进行一局游戏