#4009. 枪手(gunman)
枪手(gunman)
问题描述
有一个三维直角坐标系OXYZ,OX轴向右,OY轴向上,OZ轴向外。在坐标系中,有一些矩形的窗口。窗口所在的平面平行于OXY平面,边分别平行于OX轴和OY轴。每一个窗口被放置于坐标系的不同的深度(每个窗口的Z轴坐标不同,并且大于0)。
一个枪手拿着步枪在OX轴上移动(y=0,z=0)。他可以延一条直线射出一颗子弹。他的目标是射出一颗可以通过所有窗口的子弹。子弹擦过窗口边缘也是可以的。你的任务是求出怎么打出这样一颗子弹。
输入格式
输入文件的第一行包含一个整数n——坐标系中窗口的数量(不超过100)。
接下来n行,每一行包含5个整数。这里()是窗口左下角的坐标,()是窗口右上角的坐标,窗口以z坐标排序(对于)。
输出格式
如果枪手不能射出一颗通过所有窗口的子弹,那么输出“UNSOLVABLE”;
否则,第一行输出“SOLUTION”。接下来一行输出枪手射击的X轴坐标。接下来n行输出子弹穿过相应的窗口的位置。输出的所有坐标保留6位小数。
样例
3
1 3 5 5 3
1 2 5 7 5
5 2 7 6 6
SOLUTION
-1.000000
2.000000 3.000000 3.000000
4.000000 5.000000 5.000000
5.000000 6.000000 6.000000
数据范围
来源
- 信息学奥赛之数学一本通
- stong9070整理