#P3130. How I Mathematician Wonder What You Are!
How I Mathematician Wonder What You Are!
本题没有可用的提交语言。
艾萨克在童年时曾数过天空中许多星星,如今他成为了一名天文学家和数学家。他使用一台大型天文望远镜,并让自己编写的图像处理程序来计数星星。该程序最困难的部分是判断天空中发光的物体是否真的是星星。作为一名数学家,他所知道的唯一方法是应用星星的数学定义。
星形的数学定义如下:一个平面图形F是星形的,当且仅当存在一个点C∈F,使得对于F中的任意一点P,线段CP都包含在F中。这样的点C被称为F的中心。为了熟悉这个定义,我们来看下面的一些例子。
前两个是你通常所说的星星。然而,根据上述定义,第一行的所有图形都是星形的。第二行的两个图形则不是。对于每个星形图形,都用一个点标出了它的一个中心。请注意,一般来说,星形图形有无限多个中心。例如,对于第三个四边形图形,它内部的所有点都是中心。
你的任务是编写一个程序,判断给定的多边形图形是否为星形。
输入
输入是一系列数据集,后跟一行包含单个0的行。每个数据集指定一个多边形,格式如下:
n x1 y1 x2 y2 … xn yn
第一行是顶点数量n,满足4≤n≤50。接下来的n行每行包含x、y坐标,代表一个顶点的坐标。线段(xi, yi)–(xi+1, yi+1)(i=1,…,n-1)和线段(xn, yn)–(x1, y1)构成了多边形的边界,这些线段按逆时针顺序排列。也就是说,这些线段的左侧是多边形的内部。
你可以假设该多边形是简单多边形,即其边界从不交叉或自触。你也可以假设,即使无限延伸,多边形的三条边也不会交于同一点。
输出
对于每个数据集,如果多边形是星形的,输出“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