Viene fornita una serie di coordinate cartesiane arbitrarie, uniche, 2d, intere: ad es. [(0,0), (0,1), (1,0)]
Trova il percorso più lungo possibile da questo set di coordinate, con la limitazione che una coordinata può essere "visitata" una sola volta. (E non "ritorni" alle coordinate in cui hai iniziato).
Importante:
Non è possibile "passare sopra" una coordinata o attorno ad essa. Ad esempio, nell'ultimo esempio di nota (Rettangolo), non è possibile spostarsi da D ad A senza visitare C (che può essere una visita, invalidando la lunghezza così trovata). Lo ha sottolineato @FryAmTheEggman.
Input di funzione: matrice di coordinate cartesiane 2d
Output di funzione: solo lunghezza massima
Vincitore: il codice più corto vince, nessuna sospensione esclusa (non il più efficiente in termini di spazio-tempo)
Esempi
1 : In questo caso mostrato sopra, il percorso più lungo senza coordinate "visitate" due volte è A -> B -> O (o OBA o BAO) e la lunghezza del percorso è sqrt (2) + 1 = 2.414
2 : In questo caso mostrato sopra, il percorso più lungo senza coordinate "visitate" due volte è ABOC (e ovviamente COBA, OCAB ecc.), E per il quadrato dell'unità mostrato, calcola in sqrt (2) + sqrt (2) + 1 = 3.828.
Nota: ecco un ulteriore test case che non è così banale come i due esempi precedenti. Questo è un rettangolo formato da 6 coordinate:
Qui, il percorso più lungo è: A -> E -> C -> O -> D -> B, che è 8.7147
(diagonali massime possibili percorse e senza bordi attraversati)