#P2701. Lapux the Floating Island
Lapux the Floating Island
题目描述
在副热带太平洋上有一个由众多岛屿组成的国家。其首都拉普克斯()是一个半径为的圆形浮空岛,通过某种磁力魔法始终保持在固定高度。
每年夏至正午会举行一个短暂的庆典,此时太阳直射,拉普克斯会快速沿多边形路径在海面上移动,并在正下方投下阴影(注:多边形路径由若干直线段组成)。阴影会被拉普克斯周围的人工云环放大,这些云环用于某些未知的实用和娱乐功能。
由于前任对人民的承诺以及技术限制,拉普克斯的仁慈独裁者要求工程师规划的路径和云控方案必须满足以下条件:
拉普克斯和云环的阴影不得覆盖任何岛屿;
阴影的圆形区域半径在路径的每一段必须保持不变,仅在顶点处(即方向改变时)可调整;
阴影半径应尽可能大,但不得超过技术上限。
你需要帮助独裁者验证工程师提出的路径是否可行,并计算路径每一段的阴影半径。岛屿用多边形表示,拉普克斯中心路径用折线表示。假设所有岛屿均为凸多边形,且路径始终在海面上且不接触任何岛屿(但路径可能自交)。
考虑以下示例:设,。第一段路径的阴影半径可取最小值;第二段路径中心经过,该点距某岛屿西北角仅,因此不可行;第三段路径的半径受终点与三角形岛南端的距离限制,为。
输入格式
每个测试用例首行为个实数、和个整数(,表示岛屿数量)。
接下来行描述岛屿,每行第一个数()表示岛屿顶点数,随后对实数给出顶点坐标。
接着一行描述路径,第一个数()表示路径顶点数,随后对实数给出路径顶点坐标。
输入以一行结束。所有实数保留位小数,范围。
输出格式
对每个测试用例,输出一行个整数,依次表示每段路径的阴影半径(四舍五入取整)。若某段半径不可行(小于),输出。
输入数据
10 50 3
3 220.0 360.0 240.0 380.0 200.0 380.0
4 205.0 235.0 240.0 220.0 240.0 200.0 220.0 200.0
4 60.0 340.0 120.0 280.0 180.0 340.0 120.0 400.0
4 20.0 200.0 160.0 200.0 220.0 260.0 220.0 340.0
0 0 0
输出数据
50 0 20
来源
台湾 2004