#CSES2193. 多边形的格点数

多边形的格点数

题目背景

翻译自 CSES-2193 题。

题目描述

给定一个多边形,计算多边形内部和边界上的格点数。格点是指坐标为整数的点。

这个多边形有 nn 个顶点 (x1,y1),(x2,y2),,(xn,yn)(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)。对于每个 i=1,2,,n1i = 1, 2, \ldots, n-1,顶点 (xi,yi)(x_i, y_i)(xi+1,yi+1)(x_{i+1}, y_{i+1}) 是相邻的,而顶点 (x1,y1)(x_1, y_1)(xn,yn)(x_n, y_n) 也是相邻的。

输入格式

第一行输入一个整数 nn:表示多边形的顶点数。

接下来的 nn 行,每行包含两个整数 xix_iyiy_i,表示多边形的第 ii 个顶点的坐标。

假设多边形是简单的,即不会自交。

输出格式

输出两个整数,分别是多边形内部和边界上的格点数。

样例

4
1 1
5 3
3 5
1 4
6 8

数据范围

  • 3n1053 \le n \le 10^5
  • 109xi,yi109-10^9 \le x_i,y_i \le 10^9