Escriba un programa para determinar si el polígono de entrada es convexo . El polígono se especifica con una línea que contiene N , el número de vértices, luego N líneas que contienen las coordenadas x e y de cada vértice. Los vértices se enumerarán en sentido horario a partir de un vértice arbitrario.
Ejemplo 1
entrada
4
0 0
0 1
1 1
1 0
salida
convex
ejemplo 2
entrada
4
0 0
2 1
1 0
2 -1
salida
concave
ejemplo 3
entrada
8
0 0
0 1
0 2
1 2
2 2
2 1
2 0
1 0
salida
convex
x y y son números enteros, n <1000 , y | x |, | y | <1,000 . Puede suponer que el polígono de entrada es simple (ninguno de los bordes se cruza, solo 2 bordes tocan cada vértice). El programa más corto gana.
¿"Simple" no incluye "los bordes consecutivos no son colineales"? Además, un par de casos de prueba más: (0,0) (0,2) (2,2) (2,0) (1,1); y (1,1) (0,0) (0,2) (2,2) (2,0) - para probar los casos en los que encontrar el vértice cóncavo requiere envolver desde el final hasta el inicio.
—
Peter Taylor
Esta pregunta está envejeciendo, pero ... Considere agregar un ejemplo cóncavo con dos segmentos alineados, por ejemplo, una modificación del ejemplo 2: (0,0), (2,1), (4,2), (1,0) ( 2, -1). Menciono esto porque busqué el ejemplo 3 sin darme cuenta.
—
Jesse Millikan