O problema do final feliz (na verdade um teorema) afirma que
Qualquer conjunto de cinco pontos no plano na posição geral possui um subconjunto de quatro pontos que formam os vértices de um quadrilátero convexo.
Paul Erdős nomeou o problema quando dois matemáticos que primeiro trabalharam no problema, Ester Klein e George Szekeres, ficaram noivos e depois se casaram.
Esclarecimentos:
- A posição geral aqui significa que não há três pontos colineares.
O quadrilátero formado pelos quatro vértices será sempre considerado como sem interseção, independentemente da ordem dos pontos. Por exemplo, dado os quatro pontos
[1 1]
,[1 2]
,[2 1]
,[2 2]
o quadrilátero pretendido é a praça, não o arco-tie:Um quadrilátero sem interseção é convexo se nenhum ângulo interior exceder 180 graus; ou equivalente se as duas diagonais estiverem dentro do quadrilátero.
O desafio
Dados 5 pontos com coordenadas inteiras positivas, produza 4 desses pontos que formam um quadrilátero convexo.
Regras
Se houver várias soluções (ou seja, vários conjuntos de 4 pontos), você poderá escolher consistentemente a saída de uma delas ou todas.
Os formatos de entrada e saída são flexíveis como de costume (matrizes, listas, lista de listas, seqüências de caracteres com separadores razoáveis, etc.).
Código de golfe, menos bytes ganha.
Casos de teste
Entrada:
[6 8] [1 10] [6 6] [5 9] [8 10]
Existe apenas uma saída possível:
[6 8] [1 10] [6 6] [5 9]
Entrada:
[3 8] [7 5] [6 9] [7 8] [5 1]
Existem cinco soluções:
[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]
Existem três soluções:
[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, aqui estão as três soluções para este caso: