Sei un contadino e il tuo gregge di pecore è fuggito! Oh no!
Arrotonda quelle pecore costruendo recinti per contenerle. Come agricoltore con un budget che desideri utilizzare la minima quantità di recinzione possibile. Fortunatamente per te, però, non sono le pecore più intelligenti del mondo e non si preoccupano di muoversi dopo essere fuggite.
Compito
Dato un elenco di coordinate, genera il minor numero di segmenti di recinzione necessari per contenere le pecore.
Regole
- Le pecore sono contenute se non riescono ad allontanarsi (senza buchi nella recinzione).
- Non è necessario contenere tutte le pecore in un blocco di recinzione: potrebbero esserci più aree recintate indipendenti l'una dall'altra.
- I segmenti di recinzione sono orientati in direzioni cardinali.
- Ogni tupla di coordinate rappresenta una singola pecora.
- L'input deve essere coppie di numeri interi positivi,
x>0&y>0, ma può essere formattato in modo appropriato per la tua lingua.- cioè:
{{1,1},{2,1},{3,7}, .. }o[1,2],[2,1],[3,7], ..
- cioè:
- Gli spazi vuoti all'interno di un'area recintata vanno bene.
- Non puoi presumere che le coordinate siano inserite in un ordine specifico.
Ad esempio, una singola pecora richiede che i 4segmenti di recinzione siano completamente contenuti.
Casi test
[1,1]
4
[1,1],[1,2],[2,2]
8
[2,1],[3,1],[2,3],[1,1],[1,3],[3,2],[1,2],[3,3]
12
[1,1],[1,2],[2,2],[3,7],[4,9],[4,10],[4,11],[5,10]
22
[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]
36
[1,1],[2,2],[3,3],[4,4],[6,6],[7,7],[8,8],[9,9]
32
[2,1],[8,3],[8,4]
10
Appunti
- Puoi presumere che le coordinate di input siano valide.
- Il tuo algoritmo dovrebbe teoricamente funzionare per qualsiasi coordinata intera ragionevolmente grande (fino al valore massimo supportato dalla tua lingua).
- Le risposte complete al programma o alla funzione sono a posto.
Questo è code-golf , quindi vince la risposta più breve in byte!
x,yinput deve essere insieme. Bel pensiero però, non ci avevo pensato.
{1,2,3,4},{5,6,7,8} -> {1,5},{2,6},{3,7},{4,8}