Vamos a definir una matriz de 9s como:
Definamos un número explosivo como un número en la posición que se puede descomponer en enteros iguales entre todos sus vecinos adyacentes (incluido él mismo) y el valor absoluto de cada porción es mayor que 0.
De la matriz anterior, explotemos el número en la posición (0 indexado)
A veces, el resultado de descomposición en un número racional mayor que 1. Esto es algo que debemos evitar al explotar números. En estos casos, el resto se asignará al número explotado.
Para demostrarlo, continuemos trabajando con nuestra matriz anterior. Esta vez estallaremos el número en la posición
Aquí tenemos 3 puertos y el número en sí. Aquí la ecuación es algo así como que nos dan 2 para cada uno y 2 como resto.
Además, a veces un número no será lo suficientemente grande como para descomponerse en partes iguales (donde el abs es mayor que 0) entre sus vecinos (| número racional | <1). En estos casos, necesitamos "tomar prestado" del número explotado para mantener la condición "mayor que 0" . Continuemos con nuestro ejemplo anterior y explotemos el número en la posición .
El desafío es, dada una lista de posiciones y una matriz finita no vacía de números naturales, devolver la forma explotada después de que cada número de la lista de posiciones haya sido explotado.
Casos de prueba
Entrada: initial matrix: [[3, 3, 3], [3, 3, 3], [3, 3, 3]], numbers: [[0,0],[0,1],[0,2]]
Salida: [[1, 0, 1], [5, 6, 5], [3, 3, 3]]
Entrada: Initial matrix: [[9, 8, 7], [8, 9, 7], [8, 7, 9]], numbers: [[0,0],[1,1],[2,2]]
Salida: [[4, 11, 8],[11, 5, 10],[9, 10, 4]]
Entrada: Initial matrix: [[0, 0], [0, 0]], numbers: [[0,0],[0,0],[0,0]]
Salida: [[-9, 3],[3, 3]]
Entrada: Initial Matrix: [[10, 20, 30],[30, 20, 10],[40, 50, 60]], numbers: [[0,2],[2,0],[1,1],[1,0]]
Salida: [[21, 38, 13], [9, 12, 21], [21, 71, 64]]
Entrada: Initial Matrix: [[1]], numbers: [[0,0]]
Salida: [[1]]
Entrada: Initial Matrix: [[1, 2, 3]], numbers: [[0,0], [0, 1]]
Salida: [[1, 1, 4]]
Notas
Aplican reglas de entrada / salida
Puede suponer que la matriz de entrada nunca estará vacía
Puedes asumir que las coordenadas siempre serán válidas
La entrada coord en casos de prueba se da como (fila, columna). Si necesita que sea (x, y) puede intercambiar los valores. Si es así, indíquelo en su respuesta