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 自动生成**