Sfondo:
Jack è una zucca che ama viziare i cittadini dei villaggi vicino alla sua zolla di zucca ogni Halloween. Tuttavia, ogni anno dopo che qualcuno accende la candela dentro di sé, ha un tempo limitato per spaventare tutti prima che la candela si spenga, quindi non è in grado di spaventare altri abitanti del villaggio perché nessuno può vederlo. Negli anni passati, è stato in grado di spaventare solo una piccola quantità di villaggi a causa del suo scarso processo decisionale, ma ora che avrà te per aiutarlo, sarà in grado di spaventare quanti più villaggi possibile!
Compito:
Dato un elenco di località del villaggio e una durata della candela, produce il numero massimo di villaggi che Jack può visitare. Non è necessario stampare il percorso stesso.
Ingresso:
La durata della candela e un elenco delle posizioni dei villaggi in un sistema di coordinate cartesiane. La patch di zucca da cui proviene Jack sarà sempre a 0,0. È possibile formattare l'input nel modo desiderato. Per semplificare i movimenti di Jack, può muovere solo in orizzontale, in verticale o in diagonale, il che significa che la sua candela perderà 1 o 1,5 unità (prende un po 'più in diagonale) unità di vita ad ogni mossa. La candela si spegne quando la durata della vita è inferiore o uguale a 0.
Produzione:
Un numero intero pari al numero massimo di villaggi che Jack può visitare prima che la candela si spenga.
Regole:
Questo è code-golf , quindi vince il codice più breve in byte. Non sono ammesse scappatoie standard.
Casi test:
// Format [lifespan] [list of village coordinates] -> [maximum visit-able villages]
4 -1,0 1,0 2,0 3,0 4,0 5,0 -> 3
4 1,1 2,2 3,3 -> 2
5 1,1 2,1 3,1 4,1 5,0 5,1 -> 4