#P15735. 围城扩建令

围城扩建令

题目描述

城市规划师弥生最近迷上了一款叫作 Build a City 的游戏。

游戏在二维平面上进行。地图上共有 n+1n+1 个居民点,编号为 00nn。第 ii 个居民点的坐标为 (xi,yi)(x_i,y_i)。保证

x0=y0=0,x_0=y_0=0,

也就是说,居民点 00 位于原点。

城市由一圈矩形城墙围成,矩形的边均平行于坐标轴。如果一个居民点位于矩形内部或边界上,就认为它被城市包含。

一开始,城市只包含居民点 00,也就是原点处的退化矩形。每次操作中,你可以选择一个尚未占领的居民点,并修建一些城墙,使它也被纳入城市。具体地,新城市必须是一个边平行于坐标轴的最小矩形,既包含旧城市已经包含的所有内容,也包含新选择的居民点。

目标是最终把所有居民点都纳入城市。

每次操作中,城市基础建设部门最多只能修建总长度为 mm 的城墙。已有城墙可以继续使用,但不能移动。因此,一次操作中新修建的城墙长度等于新矩形的周长,减去旧矩形与新矩形公共部分的城墙长度。如果新选择的居民点已经在当前城市内,则本次需要新修建的城墙长度为 00

请判断是否存在一种占领居民点的顺序,使得每次操作中新修建的城墙总长度都不超过 mm

输入格式

第一行包含一个整数 TT,表示测试用例数量。

对于每个测试用例:

第一行包含两个整数 n,mn,m,分别表示尚未占领的居民点数量,以及一次操作最多能修建的城墙长度。

接下来 nn 行,第 ii 行包含两个整数 xi,yix_i,y_i,表示居民点 ii 的坐标。

输出格式

对于每个测试用例,输出一行。如果存在满足要求的占领顺序,输出 Yes;否则输出 No

数据范围

  • 1T51051\le T\le 5\cdot 10^5
  • 1n51051\le n\le 5\cdot 10^5
  • 1m41091\le m\le 4\cdot 10^9
  • 1xi,yi1091\le x_i,y_i\le 10^9
  • 所有测试用例的 nn 之和不超过 51055\cdot 10^5

样例 1

输入

3
3 6
1 1
4 1
2 2
4 9
1 4
2 3
3 2
4 1
10 14
10 8
1 6
2 5
4 2
5 5
8 9
2 7
6 8
6 5
7 4

输出

Yes
No
Yes