Seize piles de fromage sont placées sur un carré de 4x4. Ils sont étiquetés de à . Le plus petit tas est et le plus grand est .
La souris affamée a tellement faim qu’elle passe toujours directement à la pile la plus grosse ( ) et la mange tout de suite.
Après cela, il se dirige vers le plus gros tas voisin et le mange rapidement. (Ouais… C'est vraiment affamé.) Et ainsi de suite jusqu'à ce qu'il n'y ait plus de tas de voisins.
Une pile peut avoir jusqu'à 8 voisins (horizontalement, verticalement et en diagonale). Il n'y a pas de bouclage.
Exemple
Nous commençons avec les piles de fromage suivantes:
La souris affamée mange d’abord , puis sa plus grande pile de voisins, qui est .
Ses prochains mouvements sont , , , , , , , , et dans cet ordre exact.
Il n'y a plus de fromage autour de la souris affamée, alors ça s'arrête là.
Le défi
Compte tenu de la configuration initiale du fromage, votre code doit imprimer ou renvoyer la somme des piles restantes une fois que Hungry Mouse a cessé de les manger.
Pour l'exemple ci-dessus, la réponse attendue est .
Règles
- Étant donné que la taille de la matrice d'entrée est fixe, vous pouvez la prendre comme un tableau 2D ou un tableau unidimensionnel.
- Chaque valeur de à est garantie pour apparaître exactement une fois.
- C'est du code-golf .
Cas de test
[ [ 4, 3, 2, 1], [ 5, 6, 7, 8], [12, 11, 10, 9], [13, 14, 15, 16] ] --> 0
[ [ 8, 1, 9, 14], [11, 6, 5, 16], [13, 15, 2, 7], [10, 3, 12, 4] ] --> 0
[ [ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16] ] --> 1
[ [10, 15, 14, 11], [ 9, 3, 1, 7], [13, 5, 12, 6], [ 2, 8, 4, 16] ] --> 3
[ [ 3, 7, 10, 5], [ 6, 8, 12, 13], [15, 9, 11, 4], [14, 1, 16, 2] ] --> 12
[ [ 8, 9, 3, 6], [13, 11, 7, 15], [12, 10, 16, 2], [ 4, 14, 1, 5] ] --> 34
[ [ 8, 11, 12, 9], [14, 5, 10, 16], [ 7, 3, 1, 6], [13, 4, 2, 15] ] --> 51
[ [13, 14, 1, 2], [16, 15, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12] ] --> 78
[ [ 9, 10, 11, 12], [ 1, 2, 4, 13], [ 7, 8, 5, 14], [ 3, 16, 6, 15] ] --> 102
[ [ 9, 10, 11, 12], [ 1, 2, 7, 13], [ 6, 16, 4, 14], [ 3, 8, 5, 15] ] --> 103
[[9, 10, 11, 12], [1, 2, 7, 13], [6, 16, 4, 14], [3, 8, 5, 15]]