Ciel 博士住在一个有着多边形海岸线的平面岛屿上。她喜欢沿着螺旋路径在岛上漫步。 在这里,如果一条路径满足以下两个条件,则被称为螺旋路径: 该路径是一条没有自交的简单平面折线。 在路径的所有顶点处,线段的方向均向顺时针方向转动。
下图展示了四条路径。圆点标记代表出发点,箭头代表路径的终点。在这些路径中,只有最左侧的一条是螺旋路径。
如果对于岛屿海岸线的所有顶点,都存在一条从某点出发、以该顶点为终点,且不穿过海岸线的螺旋路径,那么 Ciel 博士称该点为“有趣点”。在这里,螺旋路径可以接触或重合海岸线。
在下图中,外侧多边形代表海岸线。标有星号的点是有趣点,而标有叉号的点不是有趣点。从星号出发的虚线折线是通往海岸线顶点的有效螺旋路径。
我们可以证明,所有有趣点构成的集合是一个(可能为空的)连通区域,我们称之为“有趣区域”。给定海岸线,你的任务是编写一个程序来计算有趣区域的面积。
输入格式
输入的第一行包含一个整数 $n$ —— 代表海岸线多边形的顶点数 ($3 \le n \le 2000$)。接下来的 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$,给出了多边形第 $i$ 个顶点的坐标 $(x_i, y_i)$,按逆时针顺序排列。$x_i$ 和 $y_i$ 均在 $0$ 到 $10^4$ 之间(含边界)。坐标系中,$x$ 轴向右,$y$ 轴向上。该多边形是简单的,即它不自交也不自触。注意,多边形可能是非凸的。保证每个顶点的内角不等于 $180$ 度。
输出格式
输出一行,表示有趣区域的面积。允许的绝对或相对误差不超过 $10^{-7}$。
样例
输入 1
4 10 0 20 10 10 30 0 10
输出 1
300.00
输入 2
10 145 269 299 271 343 193 183 139 408 181 356 324 176 327 147 404 334 434 102 424
输出 2
12658.3130191
输入 3
6 144 401 297 322 114 282 372 178 197 271 368 305
输出 3
0.0
说明
下图可视化了上述三个样例。外侧多边形对应岛屿的海岸线。有趣区域显示为灰色部分。