#P2204D. 【第四期】D 我的世界

【第四期】D 我的世界

Background

这是孵化器第二轮考核的第四期的D题,考察大家代码的综合能力。

羊羊、吉吉、雅雅在暑假的时候喜欢一起玩我的世界,可是雅雅太坏了,老是鸽羊羊和吉吉,于是羊羊和吉吉决定惩罚他。于是他们利用一键生成模组将雅雅压在了巨大的方块下面,可是模组出现了致命的bug!居然在大方块中出现了我的世界中不存在的球体,一个又一个的空心球体不断出现,雅雅似乎有了生还的机会,大家快来帮帮他吧。

Description

现雅雅被压在一个大方块下,它的高度为 h,它的长度和宽度我们可以认为是无限大的,由于bug的出现,它中间有许多半径相同的球形空洞。为了营救雅雅,我们可以在方块中建立空间坐标系, 在坐标系中,方块的下表面为 z = 0,上表面为 z = h

现在雅雅开了挂,居然用apex中寻血猎犬的上帝之眼看到了所有空洞的球心所在的坐标(所以雅雅是狗吗)。如果两个空洞相切或是相交,则雅雅可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,雅雅则可以从下表面跑进空洞; 如果一个空洞与上表面相切或是相交,雅雅则可以从空洞跑到上表面。

雅雅在不破坏方块的情况下,能否利用已有的空洞跑到上表面成功逃脱呢?

tips:查并集算法

Format

Input

第一行,包含一个正整数 T,代表所含的数据组数。

接下来是 T 组数据,每组数据的格式如下:

第一行包含三个正整数 n, hr,两个数之间以一个空格分开,分别代表方块中空洞的数量,方块的高度和空洞的半径。

接下来的 n 行,每行包含三个整数 x, y, z,两个数之间以一个空格分开,表示空洞球心坐标为 (x,y,z)

Output

包含 T 行,分别对应 T 组数据的答案,如果在第 i 组数据中,雅雅能从下表面跑到上表面,则输出“Yes”,如果不能,则输出“No”(均不包含引号)

Samples

3
2 4 1
0 0 1
0 0 3
2 5 1
0 0 1
0 0 4
2 5 2
0 0 2
2 0 4
Yes
No
Yes

image

Limitation

对于 20%的数据,n = 1, 1h1 \leq h ,r104 r \leq 10^4,坐标的绝对值不超过 10^4。

对于 40%的数据,1n81 \leq n \leq 8 , 1h1 \leq h ,r104 r \leq 10^4,坐标的绝对值不超过 10^4。

对于 80%的数据,1n10001 \leq n \leq 1000 , 1h1 \leq h ,r104 r \leq 10^4,坐标的绝对值不超过 10^4。

对于 100%的数据,1n10001 \leq n \leq 1000 , 1h1 \leq h ,r109 r \leq 10^9T20 T \leq 20, 坐标的绝对值不超过 10^9。