#P15735. 围城扩建令
围城扩建令
题目描述
城市规划师弥生最近迷上了一款叫作 Build a City 的游戏。
游戏在二维平面上进行。地图上共有 个居民点,编号为 到 。第 个居民点的坐标为 。保证
也就是说,居民点 位于原点。
城市由一圈矩形城墙围成,矩形的边均平行于坐标轴。如果一个居民点位于矩形内部或边界上,就认为它被城市包含。
一开始,城市只包含居民点 ,也就是原点处的退化矩形。每次操作中,你可以选择一个尚未占领的居民点,并修建一些城墙,使它也被纳入城市。具体地,新城市必须是一个边平行于坐标轴的最小矩形,既包含旧城市已经包含的所有内容,也包含新选择的居民点。
目标是最终把所有居民点都纳入城市。
每次操作中,城市基础建设部门最多只能修建总长度为 的城墙。已有城墙可以继续使用,但不能移动。因此,一次操作中新修建的城墙长度等于新矩形的周长,减去旧矩形与新矩形公共部分的城墙长度。如果新选择的居民点已经在当前城市内,则本次需要新修建的城墙长度为 。
请判断是否存在一种占领居民点的顺序,使得每次操作中新修建的城墙总长度都不超过 。
输入格式
第一行包含一个整数 ,表示测试用例数量。
对于每个测试用例:
第一行包含两个整数 ,分别表示尚未占领的居民点数量,以及一次操作最多能修建的城墙长度。
接下来 行,第 行包含两个整数 ,表示居民点 的坐标。
输出格式
对于每个测试用例,输出一行。如果存在满足要求的占领顺序,输出 Yes;否则输出 No。
数据范围
- ;
- ;
- ;
- ;
- 所有测试用例的 之和不超过 。
样例 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