Contexte:
Jack est une citrouille qui aime effrayer les citoyens des villages près de son potiron à chaque Halloween. Cependant, chaque année après que quelqu'un a allumé la bougie à l'intérieur de lui, il a un temps limité pour effrayer tout le monde avant que la bougie ne s'éteigne, ne pouvant ainsi effrayer plus de villageois parce que personne ne peut le voir. Ces dernières années, il n'a pu effrayer qu'un petit nombre de villages en raison de sa mauvaise prise de décision, mais maintenant qu'il vous a aidé, il pourra effrayer autant de villages que possible!
Tâche:
Compte tenu de la liste des emplacements des villages et de la durée de vie des bougies, affichez le nombre maximal de villages que Jack peut visiter. Vous n'avez pas besoin d'imprimer le chemin lui-même.
Contribution:
La durée de vie de la bougie et une liste des emplacements des villages dans un système de coordonnées cartésiennes. Le patch de citrouille d'origine de Jack sera toujours à 0,0. Vous pouvez formater l'entrée comme vous le souhaitez. Pour simplifier les mouvements de Jack, il ne peut se déplacer qu'horizontalement, verticalement ou en diagonale, ce qui signifie que sa bougie perdra 1 ou 1,5 (il prend un peu plus longtemps en diagonale) unités de vie à chaque mouvement. La bougie s'éteint lorsque la durée de vie est inférieure ou égale à 0.
Sortie:
Un entier égal au nombre maximum de villages que Jack peut visiter avant que la bougie ne s'éteigne.
Règles:
C'est le code-golf , donc le code le plus court en octets gagne. Les échappatoires standard ne sont pas autorisées.
Cas de 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