Imaginez un pyromane se promener dans la ville et cueillir ses victimes selon un modèle très spécifique (ou, alternativement, imaginer une abeille volant dans le jardin et cueillant ses fleurs pour polliniser selon un modèle très spécifique ). Disons que la ville est une matrice N × N , où N est un entier supérieur ou égal à 2 . L'incendiaire part du coin supérieur gauche et place successivement les points M de la maison devant eux (où M est le numéro de la maison dans laquelle ils se trouvent actuellement), tout en changeant la direction dans laquelle il se déplace après chaque incendie, dans l'ordre Est ⟶ Sud ⟶ Ouest ⟶ Nord ⟶ Est ⟶ Sud ... et ainsi de suite. La berceusede l'incendiaire est la valeur de M qui les fait sortir de la ville (c'est-à-dire la dernière maison qu'ils visitent avant d'arrêter l'abomination). C'est beaucoup plus facile à comprendre avec un exemple. Prenez par exemple la matrice suivante:
3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1
- Nous commençons dans le coin supérieur gauche, donc M = 3 (
X
marque les positions actuelle et précédente de l'incendiaire):X 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1
- Selon l'ordre connu, il va d'abord vers l'est M (3) et atterrit sur un 2 donc M change en conséquence:
X 2 3 X 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1
- Ensuite, il va vers le sud 2 spots et M est maintenant 1 :
X 2 3 X 7 3 1 4 1 6 2 5 3 X 1 4 4 3 2 4 1 1 1 1 1
- Maintenant, il se déplace de 1 place vers l'ouest et M devient 3 :
X 2 3 X 7 3 1 4 1 6 2 5 XX 1 4 4 3 2 4 1 1 1 1 1
- Après avoir déplacé 3 spots vers le nord, il quitte la ville! Par conséquent, 3 est la berceuse de cet pyromane:
X X 2 3 X 7 3 1 4 1 6 2 5 XX 1 4 4 3 2 4 1 1 1 1 1
Étant donné une matrice N × N (vous pouvez également prendre N comme entrée en option ), trouvez la berceuse de l'incendiaire. J'ai écrit un programme avec lequel vous pouvez générer plus de cas de test et visualiser le chemin du pyromane: essayez-le en ligne!
- Vous pouvez supposer que le pyromane n'avoir une berceuse (qui est, il peut effectivement sortir de la matrice).
- La matrice ne contiendra que des entiers positifs inférieurs ou égaux à 9 (chiffres), pour plus de simplicité. Les solutions qui gèrent tout entier positif sont les bienvenues.
- Notez que l'incendiaire peut atterrir sur un endroit qu'ils ont déjà brûlé, au cas où le sentiment qu'ils emménager serait différent de la première fois. Dans un tel scénario, prenez simplement la valeur de cet élément et déplacez-vous à nouveau comme d'habitude.
- Vous pouvez concurrencer dans n'importe quel langage de programmation et pouvez prendre des entrées et fournir des sorties par n'importe quelle méthode standard , tout en prenant note que ces failles sont interdites par défaut. Il s'agit de code-golf , donc la soumission la plus courte (en octets) pour chaque langue l' emporte.
Cas de test
------------- 9 2 3 1 7 2 8 7 6 Berceuse: 9 ------------- 2 1 2 1 3 1 1 2 1 2 2 1 1 1 1 3 Berceuse: 2 ------------- 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 Berceuse: 3 ------------- 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Berceuse: 2 ------------- 3 2 1 2 1 1 1 2 3 2 3 2 1 1 2 1 1 1 3 1 2 3 1 1 1 1 1 1 4 5 2 3 1 1 1 1 2 1 2 1 2 2 1 2 2 3 2 1 2 Berceuse: 3 -------------
Les matrices dans un format différent:
[[9, 2, 3], [1, 7, 2], [8, 7, 6]] [[2, 1, 2, 1], [3, 1, 1, 2], [1, 2, 2, 1], [1, 1, 1, 3]] [[3, 2, 3, 2, 7], [3, 1, 4, 1, 6], [2, 5, 3, 1, 1], [4, 4, 3, 2, 4], [ 1, 1, 1, 1, 1]] [[1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2]] [[3, 2, 1, 2, 1, 1, 1], [2, 3, 2, 3, 2, 1, 1], [2, 1, 1, 1, 3, 1, 2], [ 3, 1, 1, 1, 1, 1, 1], [4, 5, 2, 3, 1, 1, 1], [1, 2, 1, 2, 1, 2, 2], [1, 2, 2, 3, 2, 1, 2]]
Le cinquième cas de test est très intéressant à visualiser .