题库练习 Randomizer
← 上一题 下一题 →

A9877 | Randomizer

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Gerald got tired of playing board games with the usual six-sided die, and he bought a toy called Randomizer. It functions as follows.

A Randomizer has its own coordinate plane on which a strictly convex polygon is painted, the polygon is called a basic polygon. If you shake a Randomizer, it draws some nondegenerate (i.e. having a non-zero area) convex polygon with vertices at some vertices of the basic polygon. The result of the roll (more precisely, the result of the shaking) is considered to be the number of points with integer coordinates, which were strictly inside (the points on the border are not considered) the selected polygon. Now Gerald is wondering: what is the expected result of shaking the Randomizer?

During the shaking the Randomizer considers all the possible non-degenerate convex polygons with vertices at the vertices of the basic polygon. Let's assume that there are $k$ versions of the polygons. Then the Randomizer chooses each of them with probability ![](/uploads/acgo/image/dde090f68570ca1d_aea45890d939.jpeg).

输入格式

The first line of the input contains a single integer $n$ ( $3<=n<=100000$ ) — the number of vertices of the basic polygon.

Next $n$ lines contain the coordinates of the vertices of the basic polygon. The $i$ -th of these lines contain two integers $x_{i}$ and $y_{i}$ ( $-10^{9}<=x_{i},y_{i}<=10^{9}$ ) — the coordinates of the $i$ -th vertex of the polygon. The vertices are given in the counter-clockwise order.

输出格式

Print the sought expected value with absolute or relative error at most $10^{-9}$ .

输入输出样例

输入 #1
4
0 0
2 0
2 2
0 2
输出 #1
0.2
输入 #2
5
0 0
2 0
2 2
1 3
0 2
输出 #2
0.8125
C++ 编辑器
输入
输出