SP3915 MPOLSTAR - Star Polygon or Not
题目描述
Isaac 小时候喜欢数星星,现在他是一名天文学家和数学家。他使用大型天文望远镜,并通过图像处理程序来计数星星。程序中最难的部分则是判断天空中发光的物体是否真的是星星。作为数学家,他只能用数学来定义星星。
一个平面图形 $F$ 是星形的,前提是存在一点 $C$ 位于 $F$ 内部,使得对于任何一点 $P$ 在 $F$ 中,线段 $CP$ 完全在 $F$ 内。这种点 $C$ 被称为 $F$ 的中心。为了方便理解,我们来看几个例子:
前两行展示了按照常规认知的星星形状。然而,根据定义,第一行的所有图形都是星形的,但第二行的两个却不是。对于每个星形图形,以一个点标示其中心。值得注意的是,一个星形通常有无数个中心。例如,第三个四边形中,所有的点都是中心。
你需要编写一个程序,来判断给定的多边形形状是否为星形。
输入格式
输入是一系列数据集,以包含一个零的单独一行结束。每个数据集定义了一个多边形,并按照以下格式提供:
```
n
x1 y1
x2 y2
...
xn yn
```
第一行为顶点数 $n$,满足 $4 \leq n \leq 50$。接下来 $n$ 行给出顶点的 $x$ 坐标和 $y$ 坐标,它们都是整数且满足 $0 \leq x_i \leq 10000$ 和 $0 \leq y_i \leq 10000$ ( $i = 1, \ldots, n$ )。这些点按逆时针顺序连接形成多边形的边界,即线段 $(x_i, y_i)-(x_{i+1}, y_{i+1})$ ( $i = 1, \ldots, n - 1$ )和线段 $(x_n, y_n)-(x_1, y_1)$。
你可以假设,多边形是简单的,也就是说,它的边界不会自相交或者接触自身。即便多边形的边无限延长,亦不会有三条边相交于一点。
输出格式
对于每个数据集,若多边形是星形的,则输出 `1`;否则输出 `0`。
## 示例输入
```
6
66 13
96 61
76 98
13 94
4 0
45 68
8
27 21
55 14
93 12
56 95
15 48
38 46
51 65
64 31
0
```
## 示例输出
```
1
0
```
说明/提示
- 顶点数 $n$ 的范围在 4 到 50 之间。
- 顶点坐标 $x_i, y_i$ 的范围在 0 到 10000 之间。
**本翻译由 AI 自动生成**