Se le proporciona una matriz / lista / vector de pares de enteros que representan coordenadas cartesianas de puntos en un plano euclidiano 2D; todas las coordenadas están entre y , se permiten duplicados. Encuentre el área del casco convexo de esos puntos, redondeado al entero más cercano; un punto medio exacto debe redondearse al entero par más cercano. Puede usar números de coma flotante en cálculos intermedios, pero solo si puede garantizar que el resultado final siempre será correcto. Este es el código de golf , por lo que gana el programa correcto más corto.
El casco convexo de un conjunto de puntos es el más pequeño conjunto convexo que contiene . En el plano euclidiano, para cualquier punto único , es el punto mismo; para dos puntos distintos, es la línea que los contiene, para tres puntos no colineales, es el triángulo que forman, y así sucesivamente.
Una buena explicación visual de lo que es un casco convexo, se describe mejor como imaginar todos los puntos como clavos en una tabla de madera, y luego estirar una banda elástica alrededor de ellos para encerrar todos los puntos:
Algunos casos de prueba:
Input: [[50, -13]]
Result: 0
Input: [[-25, -26], [34, -27]]
Result: 0
Input: [[-6, -14], [-48, -45], [21, 25]]
Result: 400
Input: [[4, 30], [5, 37], [-18, 49], [-9, -2]]
Result: 562
Input: [[0, 16], [24, 18], [-43, 36], [39, -29], [3, -38]]
Result: 2978
Input: [[19, -19], [15, 5], [-16, -41], [6, -25], [-42, 1], [12, 19]]
Result: 2118
Input: [[-23, 13], [-13, 13], [-6, -7], [22, 41], [-26, 50], [12, -12], [-23, -7]]
Result: 2307
Input: [[31, -19], [-41, -41], [25, 34], [29, -1], [42, -42], [-34, 32], [19, 33], [40, 39]]
Result: 6037
Input: [[47, 1], [-22, 24], [36, 38], [-17, 4], [41, -3], [-13, 15], [-36, -40], [-13, 35], [-25, 22]]
Result: 3908
Input: [[29, -19], [18, 9], [30, -46], [15, 20], [24, -4], [5, 19], [-44, 4], [-20, -8], [-16, 34], [17, -36]]
Result: 2905