小蓝的玻璃球
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

在一个无限大的二维平面上,散落着  个半径为  的玻璃球。现在小蓝在原点处放置一个半径为  的玻璃球,并且原点处的玻璃球一个初速度,玻璃球朝平行于二维平面的各个方向发射的概率均相同,现在小蓝发射小球,使玻璃球沿着某一方向做匀速直线运动(忽略摩擦力)。求该玻璃球与其他玻璃球相撞的概率。
注: 发射的玻璃球只需要碰撞到任意一个玻璃球就算相撞,原点的玻璃球与其他玻璃球不存在相交区域。

输入描述:

第一行一个整数 n ,表示有 n 个小球散落在二维平面内。
接下来 n 行,每行两个整数 x_i ,点代表第 i 小球的坐标。
输入保证所有的玻璃球都是相离或者相切。

输出描述:

输出一个小数,表示该玻璃球与其他玻璃球相撞的概率。

示例1

输入

复制
1
-2 0

输出

复制
0.500000
示例2

输入

复制
2
-2 0
0 2

输出

复制
0.750000
示例3

输入

复制
1
4 0

输出

复制
0.166667

备注:

如果您的答案的绝对或相对误差小于,则将被认为是正确的