九条可怜是一个贪玩的女孩子。
一个可爱的女孩子出门在外和朋友玩,难免会遇到危险,于是可怜的爸爸悄悄的安插了
一次理想的换岗是:距离可怜远的保镖被换到了较近的位置,距离可怜近的保镖被换到了较远的位置。经过一系列安排,保镖们会按照如下的方式进行换岗:
- 换岗时,可怜和保镖们的位置可以被抽象成二维平面直角坐标系上的点。设可怜的位置为
,保镖的位置为 ,换岗后的位置为 - 在换岗前后,保镖和可怜的相对位置不变。即对于
, 在射线 上。 - 在换岗前后,保镖和可怜的距离变成了原来的倒数。即对于
, 。
同时,保镖的位置决定了可怜的安全度。如果在外围的保镖越多,那么他们能观察到的信息就越多,可怜就越安全。因此,我们定义这些保镖的位置的凸包的顶点个数为可怜的安全度。
然而,可怜的行踪总是神出鬼没的。这一天,保镖们跟丢了可怜,只知道可怜下次会在以
现在,可怜的爸爸想要计算,保镖们在换岗后,可怜的安全度的期望是多少。
如果你对凸包不太熟悉,这儿给出凸包形式化的定义:
- 对于一个简单多边形,它是凸多边形当且仅当它内部任意两点的连线在它的内部。
- 对于一个点集
,它的凸包为包含所有点面积最小的没有三个连续顶点共线的凸多边形。
输入格式
第一行输入一个整数
第二行输入四个整数
接下来
输出格式
输出一行一个实数表示凸包节点数的期望。
当你的答案与标准输出的绝对误差或相对误差在
样例一
input
4 0 0 1 1 0 0 2 0 0 1 1 1
output
3.7853981633974474
explanation
这儿画出可怜出现在
这时四个保镖的位置
限制与约定
测试点编号 | |
---|---|
对于
对于
同时为了避免可能出现的精度误差,在所有实际的测试数据以及大样例中,保证可怜可能出现的矩形区域的长宽都不小于
时间限制: 4s
空间限制: 512MB