Inspirado por esta pregunta de desbordamiento de pila .
El reto
Entrada
Una matriz de matrices cuadradas que contienen enteros no negativos.
Salida
Una matriz cuadrada construida a partir de las matrices de entrada de la siguiente manera.
Sea el tamaño de cada matriz de entrada y el número de matrices de entrada.
Para mayor claridad, considere el siguiente ejemplo de matrices de entrada ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Comience con la primera matriz de entrada.
- Desplace la segunda matriz de entrada N −1 pasos hacia abajo y N −1 pasos hacia la derecha, de modo que su entrada superior izquierda coincida con la entrada inferior derecha de la anterior.
Imagine la segunda matriz desplazada como si estuviera apilada encima de la primera. Suma los dos valores en la entrada coincidente. Escriba los otros valores y complete las entradas restantes con
0
para obtener una matriz . Con la entrada de ejemplo, el resultado hasta ahora es3 5 0 4 16 8 0 12 11
Para cada matriz de entrada restante, escalónela de modo que su parte superior izquierda coincida con la parte inferior derecha de la matriz de resultados acumulada hasta el momento. En el ejemplo, incluir la tercera matriz de entrada da
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
La salida es la matriz obtenida después de incluir la última matriz de entrada.
Reglas y aclaraciones adicionales
- y son enteros positivos.
- Opcionalmente, puede tomar y como entradas adicionales.
- La entrada y la salida se pueden tomar por cualquier medio razonable . Su formato es flexible como siempre.
- Se permiten programas o funciones, en cualquier lenguaje de programación . Las lagunas estándar están prohibidas .
- El código más corto en bytes gana.
Casos de prueba:
En cada caso, las matrices de entrada se muestran primero, luego la salida.
, :
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
P = 4 , :
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