Vamos definir uma matriz de 9s como:
Vamos definir um número explodindo como um número na posição que pode ser decomposto em números inteiros iguais entre todos os seus vizinhos adjacentes (incluindo a si próprio) e o valor absoluto de cada parte é maior que 0.
A partir da matriz anterior, vamos explodir o número na posição (0 indexado)
Às vezes, a decomposição resulta em um número racional maior que 1. Isso é algo que precisamos evitar ao explodir números. Nesse caso, o restante será atribuído ao número explodido.
Para demonstrá-lo, vamos continuar trabalhando com nossa matriz anterior. Desta vez, explodiremos o número na posição
Aqui temos 3 neightbors e o próprio número. Aqui, a equação é algo como que nos dão 2 para cada um e 2 como restante.
Além disso, às vezes um número não será grande o suficiente para ser decomposto em partes iguais (onde o abs é maior que 0) entre seus vizinhos (| número racional | <1). Nesses casos, precisamos "emprestar" do número explodido para manter a condição "maior que 0" . Vamos continuar com o exemplo anterior e explodir o número na posição .
O desafio é que, dada uma lista de posições e uma matriz finita não vazia de números naturais, retorne a forma explodida após a explosão de cada número da lista de posições.
Casos de teste
Entrada: initial matrix: [[3, 3, 3], [3, 3, 3], [3, 3, 3]], numbers: [[0,0],[0,1],[0,2]]
Saída: [[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]]
Saída: [[4, 11, 8],[11, 5, 10],[9, 10, 4]]
Entrada: Initial matrix: [[0, 0], [0, 0]], numbers: [[0,0],[0,0],[0,0]]
Saída: [[-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]]
Saída: [[21, 38, 13], [9, 12, 21], [21, 71, 64]]
Entrada: Initial Matrix: [[1]], numbers: [[0,0]]
Saída: [[1]]
Entrada: Initial Matrix: [[1, 2, 3]], numbers: [[0,0], [0, 1]]
Saída: [[1, 1, 4]]
Notas
Você pode assumir que a matriz de entrada nunca estará vazia
Você pode assumir que as coordenadas sempre serão válidas
A coordenada de entrada nos casos de teste é fornecida como (linha, coluna). Se você precisar que seja (x, y), poderá trocar os valores. Em caso afirmativo, indique que em sua resposta