Ti viene data una matrice quadrata di larghezza , contenente numeri quadrati .
Il tuo compito è far esplodere tutti i numeri quadrati fino a quando non sono scomparsi tutti. È necessario stampare o restituire la matrice finale.
Più specificamente:
- Cerca il quadrato più alto nella matrice.
- Cerca il suo vicino più piccolo adiacente (in orizzontale o in verticale e senza avvolgersi).
- Sostituisci con e sostituisci con .
Ripeti il processo dal passaggio 1 fino a quando non ci sono più quadrati nella matrice.
Esempio
Matrice di input:
Il quadrato più alto esplode in due parti di e si fonde con il suo vicino più piccolo, che diventa:
La piazza più alta del esplode e si fonde con il suo vicino più piccolo :
La piazza più alta esplode e si fonde con il suo vicino più piccolo :
L'unica piazza rimasta esplode e si fonde con il suo vicino più piccolo :
Non ci sono più quadrati, quindi abbiamo finito.
Regole
- La matrice di ingresso è garantito per avere le seguenti proprietà:
- ad ogni passo, il quadrato più alto sarà sempre unico
- ad ogni passo, il vicino più piccolo della piazza più alta sarà sempre unico
- la sequenza non si ripeterà per sempre
- La matrice iniziale può contenere , ma non devi preoccuparti di far esplodere , poiché non sarà mai il quadrato più alto o l'unico rimasto.
- Gli I / O possono essere elaborati in qualsiasi formato ragionevole
- Questo è code-golf
Casi test
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.
Posso invece modificare la matrice di input?