#P17544. PM6194 最大绕数

PM6194 最大绕数

题目描述

给定平面上的一条闭合折线路径。路径可以与自身相交,也允许某些线段被重复经过。

对于任意一个不在路径上的点,都可以定义一个唯一的绕数(winding number),表示路径围绕该点旋转了多少圈。沿着路径走一周时,从该点指向当前路径位置的方向会连续变化;最终方向的总变化量一定是完整圈数的整数倍。若路径按顺时针方向围绕该点,则绕数为负数。

例如,考虑下面四个顶点以及点 PP

1               2
        P
        3      4

若路径按顶点编号依次经过,则有:

  • 路径 13421PP 的绕数为 11
  • 路径 13421231PP 的绕数为 00
  • 路径 124312431PP 的绕数为 2-2
  • 路径 421234PP 的绕数为 00

现在只关心 xx 轴上的点。给出闭合折线路径的各个顶点,顶点顺序就是路径的行进顺序,最后一个顶点还会与第一个顶点相连。

求所有位于 xx 轴上且不在路径上的点中,最大的非负绕数。

输入格式

第一行一个整数 nn,表示顶点数量。

接下来 nn 行,每行两个整数 xi,yix_i,y_i,表示第 ii 个顶点的坐标。路径依次连接第 1,2,,n1,2,\ldots,n 个顶点,并连接第 nn 个顶点与第 11 个顶点。

输出格式

输出一个整数,表示 xx 轴上不在路径上的点能够取得的最大非负绕数。

数据范围

  • 1n501\le n\le 50
  • 1000xi,yi1000-1000\le x_i,y_i\le 1000

样例 1

输入

2
1 -2
4 9

输出

0

样例 2

输入

4
1 -1
1 0
3 0
3 1

输出

0

样例 3

输入

5
0 1
1 -1
1 1
0 -1
2 1

输出

2

样例 4

输入

12
0 -100
1000 -100
500 100
0 -100
1000 -100
500 100
500 100
1000 -100
0 -100
500 100
1000 -100
0 -100

输出

0