Вам дана квадратная матрица шириной , содержащая квадратные числа .
Ваша задача - заставить все квадратные числа «взорваться», пока все они не исчезнут. Вы должны распечатать или вернуть окончательную матрицу.
Более конкретно:
- Ищите самый высокий квадрат в матрице.
- Ищите его наименьшего соседа (по горизонтали или вертикали и без обтекания).
- Замените на x и замените n на n × x .
Повторите процесс с шага 1, пока в матрице больше не будет квадрата.
пример
Матрица ввода:
Самый высокий квадрат взрывается в две части и сливается со своим наименьшим соседом, который становится:
Самая высокая площадь взрывается и сливается со своим самым маленьким соседом :
Самый высокий квадрат взрывается и сливается со своим самым маленьким соседом :
Единственный оставшийся квадрат взрывается и сливается со своим самым маленьким соседом :
Там больше нет квадрата, поэтому мы закончили.
правила
- Входная матрица гарантированно имеет следующие свойства:
- на каждом шагу самая высокая площадь всегда будет уникальной
- на каждом шаге самый маленький сосед самой высокой площади всегда будет уникальным
- последовательность не будет повторяться вечно
- Исходная матрица может содержать , но вам не нужно беспокоиться о том, чтобы сделать взрыв, так как он никогда не будет самым высоким или единственным оставшимся квадратом.
- Ввод / вывод может быть обработан в любом разумном формате
- Это код-гольф
Контрольные примеры
Input : [[16,9],[4,25]]
Output: [[24,6],[20,5]]
Input : [[9,4],[1,25]]
Output: [[3,12],[5,5]]
Input : [[625,36],[196,324]]
Output: [[750,540],[14,252]]
Input : [[1,9,49],[1,4,1],[36,25,1]]
Output: [[3,6,7],[6,2,7],[6,5,5]]
Input : [[81,4,64],[16,361,64],[169,289,400]]
Output: [[3,5472,8],[624,323,1280],[13,17,20]]
Input : [[36,100,1],[49,144,256],[25,49,81]]
Output: [[6,80,2],[42,120,192],[175,21,189]]
Input : [[256,169,9,225],[36,121,144,81],[9,121,9,36],[400,361,100,9]]
Output: [[384,13,135,15],[24,1573,108,54],[180,11,108,6],[380,209,10,90]]
Input : [[9,361,784,144,484],[121,441,625,49,25],[256,100,36,81,529],[49,4,64,324,16],[25,1,841,196,9]]
Output: [[171,19,700,4032,22],[11,210,525,7,550],[176,60,6,63,23],[140,112,1152,162,368],[5,29,29,14,126]]
You must print or return the final matrix.
Могу ли я вместо этого изменить матрицу ввода?