Inspirado por esta questão do Stack Overflow .
O desafio
Entrada
Uma matriz de matrizes quadradas contendo números inteiros não negativos.
Resultado
Uma matriz quadrada construída a partir das matrizes de entrada da seguinte maneira.
Seja o tamanho de cada matriz de entrada e o número de matrizes de entrada.
Para maior clareza, considere o seguinte exemplo de matrizes de entrada ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Comece com a primeira matriz de entrada.
- Desloque a segunda matriz de entrada N -1 para baixo e N -1 para a direita, de modo que sua entrada superior esquerda coincida com a entrada inferior direita da anterior.
Imagine a segunda matriz deslocada como se estivesse empilhada em cima da primeira. Soma os dois valores na entrada coincidente. Escreva os outros valores e preencha as entradas restantes
0
para obter uma matriz . Com a entrada de exemplo, o resultado até agora é3 5 0 4 16 8 0 12 11
Para cada matriz de entrada restante, escalone-a para que sua parte superior esquerda coincida com a parte inferior direita da matriz de resultados acumulados até o momento. No exemplo, incluir a terceira matriz de entrada fornece
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
A saída é a matriz obtida após a inclusão da última matriz de entrada.
Regras e esclarecimentos adicionais
- e são inteiros positivos.
- Opcionalmente, você pode usar e como entradas adicionais.
- A entrada e a saída podem ser obtidas por qualquer meio razoável . Seu formato é flexível, como de costume.
- Programas ou funções são permitidos, em qualquer linguagem de programação . As brechas padrão são proibidas .
- O código mais curto em bytes vence.
Casos de teste:
Em cada caso, as matrizes de entrada são mostradas primeiro, depois a saída.
, :
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