Imagine a un pirómano caminando por la ciudad y recogiendo a sus víctimas de acuerdo con un patrón muy específico (o, alternativamente, imagine una abeja volando por el jardín y recogiendo sus flores para polenizar de acuerdo con un patrón muy específico ). Digamos que la ciudad es una matriz N × N , donde N es un número entero mayor o igual a 2 . El incendiario comienza desde la esquina superior izquierda y establece sucesivamente los puntos M de la casa frente a ellos (donde M es el número de la casa en la que se encuentran actualmente), mientras cambia la dirección en la que se mueve después de cada incendio, en el orden Este ⟶ Sur ⟶ Oeste ⟶ Norte ⟶ Este ⟶ Sur ... y así sucesivamente. La canción de cunadel incendiario es el valor de M que los hace salir de la ciudad (es decir, la última casa que visitan antes de detener la abominación). Esto es mucho más fácil de entender con un ejemplo. Tome la siguiente matriz por ejemplo:
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
- Comenzamos en la esquina superior izquierda, por lo que M = 3 (
X
marca las posiciones actuales y anteriores del pirómano):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
- Según el orden conocido, primero va al este M (3) puntos y aterriza en un 2, por lo que M cambia en consecuencia:
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
- Luego va hacia el sur 2 puntos y M es ahora 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
- Ahora se mueve 1 lugar hacia el oeste y M se convierte en 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
- ¡Después de que se mueve 3 puntos al norte, sale de la ciudad! Por lo tanto, 3 es la canción de cuna de este pirómano:
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
Dada una matriz N × N (opcionalmente, también puede tomar N como entrada), encuentre la canción de cuna del pirómano. He escrito un programa con el que puedes generar más casos de prueba y visualizar el camino del pirómano: ¡ Pruébalo en línea!
- Es posible suponer que el incendiario hace tener una canción de cuna (que es, en realidad puede salir de la matriz).
- La matriz solo contendrá enteros positivos menores o iguales a 9 (dígitos), por simplicidad. Las soluciones que manejan cualquier número entero positivo son completamente bienvenidas.
- Tenga en cuenta que el pirómano puede aterrizar en un lugar que ya ha quemado, en caso de que la sensación de que se mude sea diferente de la primera vez. En tal escenario, simplemente tome el valor de ese elemento y muévalo nuevamente como de costumbre.
- Puede competir en cualquier lenguaje de programación y puede tomar entradas y proporcionar salidas a través de cualquier método estándar , mientras toma nota de que estas lagunas están prohibidas por defecto. Este es el código de golf , por lo que gana el envío más corto (en bytes) para cada idioma .
Casos de prueba
------------- 9 2 3 1 7 2 8 7 6 Canción de cuna: 9 ------------- 2 1 2 1 3 1 1 2 1 2 2 1 1 1 1 3 Canción de cuna: 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 Canción de cuna: 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 Canción de cuna: 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 Canción de cuna: 3 -------------
Las matrices en un formato diferente:
[[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]]
El quinto caso de prueba es muy interesante de visualizar .