Zainspirowany przez tym pytaniem Przepełnienie stosu .
Wyzwanie
Wejście
Tablica kwadratowych macierzy zawierających nieujemne liczby całkowite.
Wynik
Matryca kwadratowa zbudowana z macierzy wejściowych w następujący sposób.
Niech będzie rozmiarem każdej macierzy wejściowej, a liczbą macierzy wejściowych.
Dla jasności rozważmy następujące przykładowe macierze wejściowe ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Zacznij od pierwszej matrycy wejściowej.
- Przesuń drugą macierz wejściową N- 1 o krok w dół i N -1 kroki w prawo, tak aby jej górny lewy wpis pokrywa się z prawym dolnym wpisem poprzedniego.
Wyobraź sobie drugą, przesuniętą matrycę, jakby była ułożona na górze pierwszej. Zsumuj dwie wartości przy wpisie zbiegu. Wpisz pozostałe wartości i wypełnij pozostałe wpisy,
0
aby uzyskać macierz . Z przykładowego wejścia wynik jest jak dotąd3 5 0 4 16 8 0 12 11
Dla każdej pozostałej macierzy wejściowej ustaw ją tak, aby jej górna lewa część pokrywała się z dolną prawą zakumulowaną macierzą wyników do tej pory. W tym przykładzie, w tym trzecia macierz wejściowa daje
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
Wyjście jest macierzą uzyskaną po uwzględnieniu ostatniej macierzy wejściowej.
Dodatkowe zasady i wyjaśnienia
- i są dodatnimi liczbami całkowitymi.
- Opcjonalnie możesz wziąć i jako dodatkowe dane wejściowe.
- Dane wejściowe i wyjściowe można przyjmować dowolnymi rozsądnymi środkami . Ich format jest elastyczny jak zwykle.
- Programy lub funkcje są dozwolone w dowolnym języku programowania . Standardowe luki są zabronione .
- Najkrótszy kod w bajtach wygrywa.
Przypadki testowe:
W każdym przypadku najpierw wyświetlane są macierze wejściowe, a następnie dane wyjściowe.
, :
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