SP14862 ULASER - Union Laser
题目描述
Y 博士是一名研究箱子性质的顶尖专家,正利用一台昂贵的高精度激光器进行实验。他计划将激光器置于若干箱子组成的区域内,观察光束何时与自身相撞。
由于他把所有的钱都花在了激光器上,没法购买箱子进行实际实验,因此准备在旧计算机上模拟。Y 博士将输入一个整数 $N$($1 \leq N \leq 10,000$),表示箱子的数量,以及每个箱子的描述。箱子是轴对齐的矩形,由 4 个整数 $x_1$、$y_1$、$x_2$ 和 $y_2$ 描述,对应一个对角线上的两个顶点。箱子可能会重叠。Y 博士还将输入激光器的起始位置 $(A, B)$,确保这点严格位于至少一个箱子内部,激光器从此位置以 45° 向右下方发射。所有坐标的绝对值不超过 3000。
结果发现,这些箱子由完全反射的材料制成——每当激光束撞到箱子边界时,会反弹。例如,光束从左侧撞击垂直边界时,会保持纵向移动而向右反弹;如果遇到正面的拐角,将会掉头,从而在拐角处与自身相撞。尽管光通常移动很快,但由于箱子的神奇性质,箱子内部的光速仅为 $\sqrt{2}$ 单位/秒。
Y 博士想用计算机模拟光束路径,确定它首次与自身相撞的时间和位置,但他不会编程!于是,他以食堂之外的食物为诱饵,吸引了一位无奈的滑铁卢大学生来到实验室,让他(或她?)编写激光模拟程序。而这个人就是你。
输入格式
第 1 行:1 个整数 $N$
第 2 行:2 个整数 $A$ 和 $B$
接下来的 $N$ 行中,每行包含 4 个整数 $x_1$、$y_1$、$x_2$ 和 $y_2$,代表每个箱子的坐标。
输出格式
如果激光束从未与自身或激光器相撞,输出「Time limit exceeded」。
如果激光束在与其他已经通过的位置相撞前,先与激光器位置 $(A, B)$ 相撞,第一行应输出激光束与激光器相撞前经过的时间(秒);第二行应输出「Broken equipment」。
否则,第一行应输出激光束首次与自身相撞前经过的时间(秒);第二行应输出相撞发生位置的 $x$ 和 $y$ 坐标。
所有时间均保留一位小数。
**本翻译由 AI 自动生成**