P0927

TopCoder MSRM 485 Deposit

TopCoder MSRM 485 Deposit

从前,森林里住着一只喜欢参加 OI 的兔子。做题累了,它便会到森林里探险。

森林可以视为一个凸多边形区域,其中有一块同样呈凸多边形的萝卜地。

兔子首先按照森林边界的弧长均匀随机选择一个起点,即起点落在任意一段边界上的概率等于该段长度占森林周长的比例。随后,它选择森林边界上距离起点最远的点作为终点;若最远点有多个,则在这些点中等概率选择一个。

兔子沿起点到终点的闭线段奔跑。若该闭线段与萝卜地区域(包括边界)存在公共点,则称此次选择的起点为幸运点,否则不是。

请计算兔子选到幸运点的概率。

输入格式

第一行包含两个整数 NN 和 MM,分别表示森林和萝卜地的顶点数。

第二行包含 NN 个整数,依次表示森林各顶点的 xx 坐标。第三行包含 NN 个整数,依次表示对应顶点的 yy 坐标。森林的顶点按照逆时针顺序给出。

第四行包含 MM 个整数,依次表示萝卜地各顶点的 xx 坐标。第五行包含 MM 个整数,依次表示对应顶点的 yy 坐标。萝卜地的顶点按照逆时针顺序给出。

输出格式

输出一个实数,表示兔子选到幸运点的概率,四舍五入保留 99 位小数。

样例输入

4 4
0 4 4 0
0 0 4 4
1 2 2 1
1 1 2 2

样例输出

0.666666667

数据范围

  • 对于 100%100\% 的数据,3≤N,M≤503\le N,M\le 50;
  • 所有坐标的绝对值均不超过 10310^3。

来源与许可

本题为 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