Se le proporciona un conjunto de coordenadas cartesianas enteras, únicas, 2d, arbitrarias: por ejemplo, [(0,0), (0,1), (1,0)]
Encuentre la ruta más larga posible de este conjunto de coordenadas, con la restricción de que una coordenada se puede "visitar" solo una vez. (Y no "regresas" a la coordenada en la que empezaste).
Importante:
No puede "pasar" una coordenada o alrededor de ella. Por ejemplo, en el ejemplo de la última nota (Rectángulo), no puede moverse de D a A sin visitar C (que puede ser una nueva visita, invalidando la longitud así encontrada). Esto fue señalado por @FryAmTheEggman.
Entrada de función: matriz de coordenadas cartesianas en 2D
Salida de función: longitud máxima solamente
Ganador: el código más corto gana, sin retenciones prohibidas (no es el más eficiente en el espacio-tiempo)
Ejemplos
1 : en el caso que se muestra arriba, la ruta más larga sin coordenadas "visitadas" dos veces es A -> B -> O (u OBA, o BAO), y la longitud de la ruta es sqrt (2) + 1 = 2.414
2 : en el caso que se muestra arriba, la ruta más larga sin coordenadas "visitadas" dos veces es ABOC (y obviamente COBA, OCAB, etc.), y para el cuadrado de la unidad que se muestra, calcula a sqrt (2) + sqrt (2) + 1 = 3.828.
Nota: Aquí hay un caso de prueba adicional que no es tan trivial como los dos ejemplos anteriores. Este es un rectángulo formado por 6 coordenadas:
Aquí, el camino más largo es: A -> E -> C -> O -> D -> B, que es 8.7147
(máximo de diagonales caminadas y sin bordes atravesados)