P17369 [ECNA 2023] Convex Hull Extension
题目描述
Hugh Klidd 博士是一位几何专家,最近沉迷于研究凸包。回顾一下:对于 $x$-$y$ 平面上的一个点集,凸包是包含所有这些点的最小凸多边形。(凸多边形具有这样的性质:任取多边形内部或边界上的两点,连接它们的线段都完全位于多边形内部或边界上。)
Klidd 博士刚刚求出了点集 $S$ 的凸包,记作 $H(S)$,并且对结果十分满意:
- 凸包有 $n\ge 3$ 个顶点;
- 每个顶点的坐标都是整数;
- 凸包的任意三个顶点均不共线。
然而,Klidd 博士志向远大,他希望让这个凸包继续增长。具体来说,他正在寻找一个**扩展点**,即满足下列条件的点 $p=(x,y)$:
1. $x$ 和 $y$ 都是整数;
2. 令 $S'=S\cup\{p\}$,则 $S'$ 的凸包 $H(S')$ 恰有 $n+1$ 个顶点;
3. 这 $n+1$ 个顶点中任意三个均不共线。
换句话说,扩展点在保留凸包上述良好性质的同时,会使凸包的顶点数恰好增加 $1$。对于大多数凸包 $H(S)$,Klidd 博士通常至少能找到一个扩展点,但他想知道一共有多少个扩展点可供选择。他猜想存在一种高效的计数方法;然而他从未上过算法课,只好向你求助。
:::align{center}

:::
*注:Klidd 博士此前恰好提出过四个公设,所以这是他的第五公设。*
输入格式
第一行包含一个整数 $n$,表示 Klidd 博士最初得到的凸包的顶点数,其中 $3\le n\le 50$。
接下来 $n$ 行,每行包含两个以空格分隔的整数 $x,y$,表示一个顶点的坐标,其中 $-1000\le x,y\le 1000$。
这 $n$ 个点互不相同,任意三点不共线,并按逆时针顺序给出。
输出格式
如果给定凸包的扩展点有无限多个,输出 `infinitely many`;否则输出扩展点的数量。