Inspiré par cette question Stack Overflow .
Le défi
Contribution
Un tableau de matrices carrées contenant des entiers non négatifs.
Production
Une matrice carrée construite à partir des matrices d'entrée comme suit.
Soit la taille de chaque matrice d'entrée et le nombre de matrices d'entrée.
Pour plus de clarté, considérons les exemples de matrices d'entrée suivantes ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Commencez avec la première matrice d'entrée.
- Décaler la deuxième matrice d'entrée N −1 pas vers le bas et N −1 pas vers la droite, de sorte que son entrée en haut à gauche coïncide avec l'entrée en bas à droite de la précédente.
Imaginez la seconde matrice décalée comme si elle était empilée sur la première. Additionnez les deux valeurs à l'entrée coïncidente. Écrivez les autres valeurs et remplissez les entrées restantes avec
0
pour obtenir une matrice . Avec l'exemple d'entrée, le résultat jusqu'à présent est3 5 0 4 16 8 0 12 11
Pour chaque matrice d'entrée restante, échelonnez-la de sorte que sa partie supérieure gauche coïncide jusqu'à présent avec la partie inférieure droite de la matrice de résultat accumulée. Dans l'exemple, l'inclusion de la troisième matrice d'entrée donne
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
La sortie est la matrice obtenue après avoir inclus la dernière matrice d'entrée.
Règles et clarifications supplémentaires
- et sont des entiers positifs.
- Vous pouvez éventuellement prendre et comme entrées supplémentaires.
- L'entrée et la sortie peuvent être prises par tout moyen raisonnable . Leur format est flexible comme d'habitude.
- Les programmes ou fonctions sont autorisés, dans n'importe quel langage de programmation . Les failles standard sont interdites .
- Le code le plus court en octets gagne.
Cas de test:
Dans chaque cas, les matrices d'entrée sont affichées en premier, puis la sortie.
, :
3 5 4 10 6 8 12 11 2 0 9 1 3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
, :
3 5 4 10 3 5 4 10
, :
4 7 23 5 39
, :
11 11 8 6 8 12 11 0 4 4 1 13 9 19 11 13 4 2 11 11 8 0 0 6 8 12 0 0 11 0 8 1 13 0 0 9 19 11 0 0 13 4 2
, :
14 13 10 0 13 20 21 3 9 22 0 8 17 3 19 16 14 13 0 0 0 10 13 20 0 0 0 21 12 22 0 0 0 0 25 3 0 0 0 19 16