#CF1850H. The Third Letter
The Third Letter
题目描述
为了赢得他最艰难的战斗,Mircea 为他的军队想出了一个绝妙的策略。他有 名士兵,并决定将他们以某种方式安排在营地中。每个士兵必须恰好属于一个营地,每个整数点 轴上(即 )都有一个营地。
该策略包含 个条件。第 个条件表示士兵 应该被安排在比士兵 所在营地前方 米的位置的营地中。(如果 ,则 的营地应在 的营地后方 米的位置。)
现在,Mircea 想知道是否存在一种士兵的分配方式,能够满足所有条件。他请求你的帮助!如果存在一种分配方式使得 名士兵的安排满足所有 个条件,请输出 "YES";否则输出 "NO"。
注意,不同的士兵可以被安排在同一个营地。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含两个正整数 和 (,),分别表示士兵数量和条件数量。
接下来 行,每行包含三个整数 、、(,,),表示如题意所述的条件。注意,如果 为正,则 应在 前方 米处;如果 为负,则 应在 后方 米处。
注意,所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果存在一种士兵的安排方式满足所有条件,输出 "YES";否则输出 "NO"。
样例
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
YES
NO
NO
YES
样例说明
对于第一个测试用例,我们可以将士兵分配到如下营地:
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
对于第二个测试用例,没有任何分配方式能同时满足所有约束。
对于第三个测试用例,没有任何分配方式能满足所有约束,因为关于同一对士兵的信息是矛盾的。
对于第四个测试用例,为了满足唯一的条件,一种可能的分配方式是:
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
- 士兵 在坐标 的营地。
由 ChatGPT 4.1 翻译
来源
Codeforces 1850H,英文题名 The Third Letter。