#CF1850H. 第三封信
第三封信
第三封信
时间限制:2s
空间限制:256MB
题目描述
为了赢得他最艰难的战斗,Mircea 为他的军队想出了一个绝妙的策略。他有 名士兵,并决定将他们以某种方式安排在营地中。每个士兵必须恰好属于一个营地,每个整数点 轴上(即 )都有一个营地。
该策略包含 个条件。第 个条件表示士兵 应该被安排在比士兵 所在营地前方 米的位置的营地中。(如果 ,则 的营地应在 的营地后方 米的位置。)
现在,Mircea 想知道是否存在一种士兵的分配方式,能够满足所有条件。他请求你的帮助!如果存在一种分配方式使得 名士兵的安排满足所有 个条件,请输出 "YES";否则输出 "NO"。
注意,不同的士兵可以被安排在同一个营地。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含两个正整数 和 (,),分别表示士兵数量和条件数量。
接下来 行,每行包含三个整数 、、(,,),表示如题意所述的条件。注意,如果 为正,则 应在 前方 米处;如果 为负,则 应在 后方 米处。
注意,所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果存在一种士兵的安排方式满足所有条件,输出 "YES";否则输出 "NO"。
样例输入 1
4
5 3
1 2 2
2 3 4
4 2 -6
6 5
1 2 2
2 3 4
4 2 -6
5 4 4
3 5 100
2 2
1 2 5
1 2 4
4 1
1 2 3
样例输出 1
YES
NO
NO
YES
提示
对于第一个测试用例,我们可以将士兵分配到如下营地:
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
对于第二个测试用例,没有任何分配方式能同时满足所有约束。
对于第三个测试用例,没有任何分配方式能满足所有约束,因为关于同一对士兵的信息是矛盾的。
对于第四个测试用例,为了满足唯一的条件,一种可能的分配方式是:
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
数据范围
- 对于所有数据,满足 。
- 对于所有数据,满足 。
- 对于所有数据,满足 。
- 对于所有数据,满足 。
- 对于所有数据,满足 。
- 对于所有数据,满足 。
- 所有测试组共同满足 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 15 | ,,且一个输入文件内 |
| 2 | 25 | ,且一个输入文件内 |
| 3 | 30 | 每条条件都满足 |
| 4 | 无特殊限制 |