#P1355. 欢乐转盘(plate)

欢乐转盘(plate)

桌面上有 nn 个转盘,每个转盘给定其圆心在平面直角坐标系中的坐标 (xi, yi)(x_i,\ y_i) 和半径 rir_i。有一个球放在坐标 (sx, sy)(sx,\ sy) 上(视为一个点)。若球处于转盘的内部或者边缘上,就视为球在该转盘上。

你可以对球进行若干次(可以为 00)如下操作:

  • 选择一个转盘满足球在该转盘上,将该转盘旋转一定角度,此时球与转盘圆心距离保持不变。

请问是否存在一种操作方式使得球移动到坐标 (ex, ey)(ex,\ ey) 上。

输入格式

本题有多组测试数据。

第一行只有一个整数,表示数据组数 TT

对于每组数据,第一行包含一个整数 nn,表示转盘个数。

接下来 nn 行,每行表示一个转盘。第 i+1i+1 行包含三个整数 xi, yi, rix_i,\ y_i,\ r_i,表示转盘圆心的坐标和半径。

最后一行包含四个整数 sx, sy, ex, eysx,\ sy,\ ex,\ ey,表示起点坐标和终点坐标。

输出格式

对于每组数据输出一行。若存在这样的操作方式,输出 YES,否则输出 NO

1
3
3 8 2
6 6 2
4 3 3
3 10 6 2
YES

样例 1 解释

样例 1 解释

1
4
3 9 2
3 5 3
6 7 2
6 2 3
3 8 6 3
NO

数据范围

对于 15%15\% 的测试数据,保证 n10n\leq 10

对于 25%25\% 的测试数据,保证 n180n\leq 180

对于 35%35\% 的测试数据,保证 n500n\leq 500

对于 100%100\% 的测试数据,保证 1T101\leq T\leq 101n20001\leq n\leq 20000sx, sy, ex, ey, xi, yi1090\leq sx,\ sy,\ ex,\ ey,\ x_i,\ y_i\leq 10^91ri1091\leq r_i\leq 10^9

保证本题不对实数精度作过高要求,推荐使用 101010^{-10} 作为精度误差。