一个由 $N$ 个顶点组成的简单多边形画在无限矩形网格上。对于这样的多边形,只有相邻的边在其公共顶点处相交;它的其他边互不相交或接触。多边形的所有顶点都位于网格点上,即顶点的坐标均为整数。
你的任务是求出完全位于给定多边形内部的网格线段的总长度(这些线段在下方的示意图中用粗线标出)。
输入格式
输入的第一行包含一个整数 $N$,表示多边形的顶点数。接下来的 $N$ 行,每行包含两个整数 $x$ 和 $y$,表示一个顶点的坐标。顶点按顺时针或逆时针顺序给出。所有顶点互不相同,但可能有超过两个连续的顶点共线。
输出格式
输出的唯一一行应包含一个实数:完全位于给定多边形内部的网格线段的总长度。
数据范围
- $3 \le N \le 100\,000$
- $-500\,000\,000 \le x, y \le 500\,000\,000$
在占总分 50 分的测试用例中,多边形的所有边都位于网格线上。
子任务
如果你的输出与期望输出足够接近,则判定为正确。
更具体地说:设你的输出为 $L$,期望结果为 $R$。那么,以下两个条件中必须至少有一个成立:
- $|L - R| \le R \cdot 10^{-6}$(相对误差)
- $|L - R| \le 10^{-6}$(绝对误差)
样例
输入样例 1
3 5 1 2 4 1 1
输出样例 1
10.0
说明 1
水平线段的长度为 $4/3 + 8/3 = 4$。垂直线段的长度为 $3 + 2 + 1 = 6$。总长度为 $4 + 6 = 10$。
输入样例 2
5 0 0 -2 2 -2 -1 2 -2 2 0
输出样例 2
12.5
说明 2
水平线段的长度为 $1 + 2 + 4 = 7$。垂直线段的长度为 $9/4 + 3/2 + 7/4 = 5.5$。总长度为 $7 + 5.5 = 12.5$。