#P16186. [Ncpc2018]Firing the Phaser发射相位炮
[Ncpc2018]Firing the Phaser发射相位炮
题目描述
作为飞船舰长,你从未遇到过如此强大的敌人。现在你已经悄悄接近了敌方旗舰,并立即准备使用大型相位炮,试图在敌人发现你之前将其击毁。
这次射击不能有任何失误。如果你想在对抗敌方旗舰时还有胜算,这一炮必须完美。
你开始给相位炮充能,并从档案中调出了敌方旗舰的房间布局。你的飞船位于敌舰正上方,因此敌舰布局可以抽象为二维平面中的若干房间。
每个房间都是一个边平行于 轴和 轴的矩形。任意两个房间都不相交,甚至不会在一个点上接触。
相位炮由一个起点 和一个角度 配置。相位光束会从 出发,沿角度 指定的方向前进长度 。所有被光束碰到的房间都会受到严重伤害。
你的目标是让这一炮击中尽可能多的房间。
相位炮几乎已经充能完成,只剩下找到最优配置。你发现这比想象中困难得多。不过充能完成前还有十秒,因此你决定写一个程序来解决这个问题。
输入格式
第一行包含两个整数 :
- 表示敌舰中的房间数量;
- 表示相位炮光束长度。
满足:
接下来 行,每行包含四个整数 ,表示一个矩形房间:
- 左下角为 ;
- 右上角为 。
满足:
$$0\le x_1<x_2\le 1000, \qquad 0\le y_1<y_2\le 1000.$$输出格式
输出一行一个整数,表示一束相位光束最多能击中的房间数量。
只要光束碰到房间,就算击中该房间。
你可以假设答案在数值意义上是稳定的:如果所有房间都向四个方向各扩张 的距离,答案不会改变。
输入输出样例 #1
输入 #1
5 8
2 1 4 5
5 1 12 4
5 5 9 10
1 6 4 10
2 11 7 14
输出 #1
4
输入输出样例 #2
输入 #2
3 6
2 2 3 3
5 3 6 4
6 6 7 7
输出 #2
3