编写程序以确定输入多边形是否为凸面。用包含N个(顶点数)的一条线指定多边形,然后使用包含每个顶点的x和y坐标的N条线指定多边形。顶点将从任意顶点开始顺时针列出。
例子1
输入
4
0 0
0 1
1 1
1 0
输出
convex
例子2
输入
4
0 0
2 1
1 0
2 -1
输出
concave
例子3
输入
8
0 0
0 1
0 2
1 2
2 2
2 1
2 0
1 0
输出
convex
x和y是整数N <1000,| x |,| y | <1000。您可以假设输入多边形很简单(没有一条边交叉,每个顶点只有2条边接触)。最短的程序获胜。
“简单”不包括“连续边不是共线的”吗?另外,还有几个测试用例:(0,0)(0,2)(2,2)(2,0)(1,1);和(1,1)(0,0)(0,2)(2,2)(2,0)-测试发现凹形顶点需要从头到尾进行缠绕的情况。
—
彼得·泰勒
这个问题正在老化,但是...考虑添加一个具有两个对齐段的凹面示例,例如对示例2的修改:(0,0),(2,1),(4,2),(1,0)( 2,-1)。之所以提出这一点,是因为我对示例3进行了摸索,却没有意识到。
—
杰西·米利坎