#P1584. A Round Peg in a Ground Hole

A Round Peg in a Ground Hole

本题没有可用的提交语言。

描述

DIY家具公司专门提供自己组装的家具套件。通常情况下,一块块木头是用木栓连接在一起的,木栓可以插入每块木板上预先切好的孔里。钉有一个圆形的横截面,因此打算适合在一个圆孔内。

最近工厂运行的电脑桌出现了故障,原因是一台自动磨床编程错误。结果是一个不规则形状的洞,而不是预期的圆形,实际上是一个不规则的多边形。你需要弄清楚这些桌子是否需要报废,或者是否可以通过用木屑和胶水的混合物填充一部分洞来回收它们。

有两个问题。首先,如果孔包含任何突起(即,如果孔中存在任何两个内部点,如果通过线段连接,该线段将穿过孔的一个或多个边缘),那么填充孔在结构上就不会足够健全,无法在正常应力下支撑木栓。其次,假设孔的形状合适,它必须足够大,以允许插入的钉子。因为这块木头上的洞必须与其他木头上相应的洞匹配,所以钉子必须安装的精确位置是已知的。

编写一个程序来接受对钉和多边形孔的描述,并确定孔是否不正确,如果不是,则钉是否适合所需的位置。每个洞被描述为一个多边形,顶点为(x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2),…, (xn,yn)(x_n, y_n)。当i=1i = 1时,多边形的边为(xi,yi)(x_i, y_i)(xi+1,yi+1)(x_i+1, y_i+1)…N−1和(xn,yn)(x_n, y_n)(x1,y1)(x_1, y_1)

Input

Input由一系列分段描述组成。每片描述由以下数据组成:

Line 1 < nVertices > < pegRadius > < pegX > < pegY >

多边形顶点数,n (integer)

peg (real)半径

peg (real) X和Y位置

n Lines < vertexX > < vertexY >

在每一个顶点的一行上,按顺序列出顶点的X和Y位置。输入的结束由若干小于3的多边形顶点表示。

输出

对于每件描述,打印单行包含字符串:

如果孔含有凸起孔是不健康的

如果孔不含有凸起并且PEG将适合在指示位置插入孔

如果孔不包含凸起但PEG将不适合在指示位置插入孔

5 1.5 1.5 2.0
1.0 1.0
2.0 2.0
1.75 2.0
1.0 3.0
0.0 2.0
5 1.5 1.5 2.0
1.0 1.0
2.0 2.0
1.75 2.5
1.0 3.0
0.0 2.0
1
HOLE IS ILL-FORMED
PEG WILL NOT FIT