Давайте визначимо матрицю 9s як:
Давайте визначимо число, що вибухає, як число в положенні яке можна розкласти на рівні цілі числа між усіма суміжними сусідами (включаючи себе), і абсолютне значення кожної частини більше 0.
З попередньої матриці давайте підірвати число в положенні (0 індексувати)
Іноді результат розкладання на раціональне число, що перевищує 1. Це те, чого нам слід уникати при вибуху чисел. У цьому випадку залишок буде присвоєний вибуховому номеру.
Щоб продемонструвати це, давайте продовжуємо працювати з нашою попередньою матрицею. Цього разу ми підірвемо число у позиції
Тут ми маємо 3 сусідів і саме число. Тут рівняння що - щось на зразок , які дають нам 2 для кожного і 2 , як залишок.
Крім того, іноді число не буде достатньо великим, щоб розкласти його в рівних частинах (де абс більший за 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), ви можете поміняти місцями значення. Якщо так, просимо зазначити це у своїй відповіді