Давайте определим матрицу из 9 с:
Давайте определим взрывающееся число как число в позиции которое можно разложить на равные целые числа между всеми соседними соседями (включая себя), и абсолютное значение каждой части больше 0.
Из предыдущей матрицы давайте разберем число в позиции (0 проиндексировано)
N = \ begin { bmatrix} 9+ \ color {red} 1 & 9 + \ color {red} 1 & 9 + \ color {red} 1 \\ 9+ \ color {red} 1 & \ color {blue} 0+ \ color {red} 1 & 9 + \ color {red} 1 \\ 9+ \ color {red} 1 & 9 + \ color {red} 1 & 9 + \ color {red} 1 \ end {bmatrix}
Иногда разложение приводит к рациональному числу, большему, чем 1. Это то, что нам нужно избегать при разложении чисел. В этом случае остаток будет присваиваться разнесенному номеру.
Чтобы продемонстрировать это, давайте продолжим работать с нашей предыдущей матрицей. На этот раз мы взорвем число в позиции
Здесь у нас есть 3 соседей и сам номер. Здесь уравнение примерно которое дает нам 2 для каждого и 2 для остатка.
Кроме того, иногда число не может быть достаточно большим, чтобы его можно было разложить на равные части (где abs больше 0) между его соседями (| рациональное число | <1). В этом случае нам нужно «позаимствовать» из разнесенного числа, чтобы сохранить условие «больше 0» . Давайте продолжим с нашим предыдущим примером и взорвем число в позиции .
Задача состоит в том, чтобы, учитывая список позиций и конечный непустой массив натуральных чисел, вернуть разобранную форму после того, как каждое число из списка позиций было взорвано.
Контрольные примеры
Входные данные: initial matrix: [[3, 3, 3], [3, 3, 3], [3, 3, 3]], numbers: [[0,0],[0,1],[0,2]]
Выход: [[1, 0, 1], [5, 6, 5], [3, 3, 3]]
Входные данные: Initial matrix: [[9, 8, 7], [8, 9, 7], [8, 7, 9]], numbers: [[0,0],[1,1],[2,2]]
Выход: [[4, 11, 8],[11, 5, 10],[9, 10, 4]]
Входные данные: Initial matrix: [[0, 0], [0, 0]], numbers: [[0,0],[0,0],[0,0]]
Выход: [[-9, 3],[3, 3]]
Входные данные: Initial Matrix: [[10, 20, 30],[30, 20, 10],[40, 50, 60]], numbers: [[0,2],[2,0],[1,1],[1,0]]
Выход: [[21, 38, 13], [9, 12, 21], [21, 71, 64]]
Входные данные: Initial Matrix: [[1]], numbers: [[0,0]]
Выход: [[1]]
Входные данные: Initial Matrix: [[1, 2, 3]], numbers: [[0,0], [0, 1]]
Выход: [[1, 1, 4]]
Заметки
Применяются правила ввода / вывода
Вы можете предположить, что входная матрица никогда не будет пустой
Вы можете предположить, что координаты всегда будут действительными
Координаты ввода в тестовых случаях задаются как (строка, столбец). Если вам нужно, чтобы это было (x, y), вы можете поменять местами значения. Если да, пожалуйста, укажите это в своем ответе