#P1709. 枪手

枪手

题目描述

有一个三维直角坐标系 OxyzOxyzOxOx 轴向右,OyOy 轴向上,OzOz 轴向外。在坐标系中 有一些矩形的窗口。窗口所在的平面平行于 OxyOxy 平面,边分别平行于 OxOx 轴和 OyOy 轴。每一个窗口被放置于坐标系的不同的深度(每个窗口的 zz 轴坐标不同,并且大于 00)。

一个枪手拿着步枪在 OxOx 轴上移动 (y=0,z=0)(y=0,z=0)。他可以延一条直线射出一颗子 弹。他的目标是射出一颗可以通过所有窗口的子弹。子弹擦过窗口边缘也是可以的,你的任务是求出怎么打出这样一颗子弹。

输入格式

第一行包含一个整数 nn,表示坐标系中窗口的数量,不超过 100100

接下来 nn 行,每一行包含 55 个整数 $x_{1i},y_{1i},x_{2i}, y_{2i},z_i\ (0<x_{1i},y_{1i},x_{2i}, y_{2i},z_i<1000)$。这里 (x1i,y1i,zi)(x_{1i},y_{1i},z_i) 是窗口左下角的坐标,(x2i,y2i,zi)(x_{2i},y_{2i},z_i) 是窗口右上角的坐标 (x1i<x2i(x_{1i}<x_{2i}y1i<y2i)y_{1i}< y_{2i}),窗口以 zz 坐标排序(对于 2in2≤i≤nzi>zi1)z_i> z_{i-1})

输出格式

如果枪手不能射出一颗通过所有窗口的子弹,那么输出 UNSOLVABLE

否则,第一行输出 SOLUTION,接下来一行输出枪手射击的又轴坐标。接下来 nn 行输出子弹穿过相应的窗口的位置。输出的所有坐标保留 66 位小数。

3
1 3 5 5 3
1 2 5 7 5
5 2 7 6 6
-1.000000
2.000000 3.000000 3.000000
4.000000 5.000000 5.000000
5.000000 6.000000 6.000000