#agc021b. [agc021_b]Holes

[agc021_b]Holes

题目描述

在二维平面上有 NN 个洞。第 ii 个洞的坐标为 (xi,yi)(x_i,y_i)

R=10101010R=10^{10^{10^{10}}}. Ringo 执行以下操作:

  • 从以原点为中心、半径为 RR 的圆的内部随机选择一个点,并将 Snuke 放置在那个点上。Snuke 将移动到离该点最近的洞中,并掉进那个洞里。如果有多个这样的洞,则选择索引最小的洞。

对于每个 ii (1iN)(1 \leq i \leq N),找出 Snuke 掉入第 ii 个洞的可能性。

这里,从以半径为 RR 的圆的内部随机选择一个点的操作定义如下:

  • 根据 \[-R,R\] 上的均匀分布独立地选择两个实数 xxyy
  • 如果 x2+y2R2x^2+y^2 \leq R^2,则选择点 (x,y)(x,y)。否则,重复选择实数 x,yx,y 直到满足条件。

约束条件

  • 2N1002 \leq N \leq 100
  • xi,yi106(1iN)|x_i|,|y_i| \leq 10^6(1 \leq i \leq N)
  • 所有给定的点两两不同。
  • 所有输入值为整数。

输入

从标准输入读入输入数据,格式如下:

NN x1x_1 y1y_1 : xNx_N yNy_N

输出

打印 NN 个实数。第 ii 个实数必须表示 Snuke 掉入第 ii 个洞的可能性。

当所有输出值的绝对误差或相对误差都不超过 10510^{-5} 时,输出将被判定为正确。


示例输入 1

2
0 0
1 1

示例输出 1

0.5
0.5

如果 Ringo 将 Snuke 放在区域 x+y1x+y \leq 1 中,Snuke 将掉入第一个洞。这种情况发生的概率非常接近 0.50.5。否则,Snuke 将掉入第二个洞,其发生的概率也非常接近 0.50.5


示例输入 2

5
0 0
2 8
4 5
2 6
3 10

示例输出 2

0.43160120892732328768
0.03480224363653196956
0.13880483535586193855
0.00000000000000000000
0.39479171208028279727