编程题
### 问题描述
在复杂的环境下航迹快速规划是智能飞行器的一个重要课题,为了简单起见,飞行器只能在 $x$ 轴方向或者 $y$ 轴方向中飞行,且在 $x$ 轴正方向中每飞行 $1$ 米则会产生 $t$ 米的误差(即在 $x$ 轴上多飞 $t$ 米),同理在 $y$ 轴方向中,每飞行 $1$ 米则会产生 $t$ 米的误差(即在 $y$ 轴上多飞 $t$ 米,多飞的距离不会再次产生误差)因为站台空间有限,当飞行器在 $x$ 轴平面与 $y$ 轴平面的误差大于某值时,飞行器将不能安全降落在站台,从而摧毁。(起点的误差为 $0$。$x$ 轴,$y$ 轴误差极限分别为 $SX$,$SY$)。为了解决该问题,欧涛提出在飞行器的路径中分别建立 $n$ 个点(蓝点或红点),其中蓝点用于将 $x$ 轴平面误差清零,红点用于将 $y$ 轴平面误差清零。这样操作,就能解决误差问题。
### 输入格式
第 $1$ 行输入一个整数 $T$,表示测试次数。
每组测试样例的第一行都包含四个整数,分别为 $t,SX,SY,n$。
每组测试样例的 $2$ 到 $2+n-1$ 行,每行三个数 $ai,bi,d$(代表站台坐标 $(ai,bi)$,其中 $d$ 为站台类别,若 $d$ 为 $0$,则该站台为 $x$ 轴误差清零点,$d$ 为 $1$ 则为 $y$ 轴误差清零点,第一个输入的站台为起点,最后输入的站台为终点,站台输入顺序为飞行器经过站台顺序)。
### 输出格式
对于每组输入,如果飞行器能正常到达终点,输出 YES,否则输出 NO。
### 输入样例
```c++
3
1 629 5 6
20 90 0
29 39 0
46 76 0
52 48 1
79 37 1
82 83 0
1 258 650 4
39 91 1
52 90 1
62 33 0
69 68 0
3 501 449 1
100 47 1
```
### 输出样例
```c++
NO
YES
YES
```
### 样例解释
对于第二个样例:
$t=1,SX=258,SY=650,n=4$。
起点 $(39,91)$,此时的 $x$ 与 $y$ 的误差都是 $0$。
起点到第二个站台:$x$ 轴多飞 $(52-39)\times 1$ 米,$y$ 轴多飞 $-(90-91)\times 1$ 米,站台类型为 $1$,$y$ 轴误差清零。
第二个站台到第三个站台:$x$ 轴多飞 $(62-52)\times 1$ 米,$y$ 轴多飞 $-(33-90)\times 1$米,站台类型为 $0$,$x$ 轴误差清零。
第三个站台到第四个站台:$x$ 轴多飞 $(69-62) \times 1$ 米,$y$ 轴多飞 $(68-33)\times 1$ 米,站台类型为 $0$,$x$ 轴误差清零。
因为飞行过程中,$x$ 轴与 $y$ 轴的误差都不大于他的极限($SX$ 或 $SY$),所以可以正常到终点,输出 YES。
### 评测数据规模
对于 $100\%$ 的评测用例: $0\le T\le10,0\le t\le 1000,2\le n\le 100,0\le SX,SY,a_i,b_i\le 1000$。