TopCoder MSRM 485 Deposit
从前,森林里住着一只喜欢参加 OI 的兔子。做题累了,它便会到森林里探险。
森林可以视为一个凸多边形区域,其中有一块同样呈凸多边形的萝卜地。
兔子首先按照森林边界的弧长均匀随机选择一个起点,即起点落在任意一段边界上的概率等于该段长度占森林周长的比例。随后,它选择森林边界上距离起点最远的点作为终点;若最远点有多个,则在这些点中等概率选择一个。
兔子沿起点到终点的闭线段奔跑。若该闭线段与萝卜地区域(包括边界)存在公共点,则称此次选择的起点为幸运点,否则不是。
请计算兔子选到幸运点的概率。
输入格式
第一行包含两个整数 和 ,分别表示森林和萝卜地的顶点数。
第二行包含 个整数,依次表示森林各顶点的 坐标。第三行包含 个整数,依次表示对应顶点的 坐标。森林的顶点按照逆时针顺序给出。
第四行包含 个整数,依次表示萝卜地各顶点的 坐标。第五行包含 个整数,依次表示对应顶点的 坐标。萝卜地的顶点按照逆时针顺序给出。
输出格式
输出一个实数,表示兔子选到幸运点的概率,四舍五入保留 位小数。
样例输入
4 4
0 4 4 0
0 0 4 4
1 2 2 1
1 1 2 2
样例输出
0.666666667
数据范围
- 对于 的数据,;
- 所有坐标的绝对值均不超过 。
来源与许可
本题为 TopCoder MSRM 485 试题「Deposit」,题面与测试数据整理自 BZOJ。
样例 1
输入
4 4
0 4 4 0
0 0 4 4
1 2 2 1
1 1 2 2
输出
0.666666667