El problema de final feliz (en realidad un teorema) establece que
Cualquier conjunto de cinco puntos en el plano en posición general tiene un subconjunto de cuatro puntos que forman los vértices de un cuadrilátero convexo.
El problema fue llamado así por Paul Erdős cuando dos matemáticos que trabajaron por primera vez en el problema, Ester Klein y George Szekeres, se comprometieron y posteriormente se casaron.
Aclaraciones:
- La posición general aquí significa que no hay tres puntos colineales.
El cuadrilátero formado por los cuatro vértices siempre se considerará que no se cruza, independientemente del orden de los puntos. Por ejemplo, teniendo en cuenta los cuatro puntos
[1 1]
,[1 2]
,[2 1]
,[2 2]
el cuadrilátero intención es la plaza, no la corbata de lazo:Un cuadrilátero que no se cruza es convexo si ningún ángulo interior excede los 180 grados; o equivalente si ambas diagonales se encuentran dentro del cuadrilátero.
El reto
Dados 5 puntos con coordenadas enteras positivas, genera 4 de esos puntos que forman un cuadrilátero convexo.
Reglas
Si hay varias soluciones (es decir, varios conjuntos de 4 puntos), puede optar constantemente por generar uno o todos.
Los formatos de entrada y salida son flexibles como de costumbre (matrices, listas, lista de listas, cadenas con separadores razonables, etc.).
Código de golf, menos bytes gana.
Casos de prueba
Entrada:
[6 8] [1 10] [6 6] [5 9] [8 10]
Solo hay una salida posible:
[6 8] [1 10] [6 6] [5 9]
Entrada:
[3 8] [7 5] [6 9] [7 8] [5 1]
Hay cinco soluciones:
[3 8] [7 5] [6 9] [7 8] [3 8] [7 5] [6 9] [5 1] [3 8] [7 5] [7 8] [5 1] [3 8] [6 9] [7 8] [5 1] [7 5] [6 9] [7 8] [5 1]
Entrada:
[4 8] [1 9] [9 9] [10 2] [1 6]
Hay tres soluciones:
[4 8] [1 9] [10 2] [1 6] [4 8] [9 9] [10 2] [1 6] [1 9] [9 9] [10 2] [1 6]
Para ilustrar, aquí están las tres soluciones para este caso: