Вдохновлен этим вопросом переполнения стека .
Соревнование
вход
Массив квадратных матриц, содержащий неотрицательные целые числа.
Выход
Квадратная матрица построена из входных матриц следующим образом.
Пусть будет размером каждой входной матрицы, а - количеством входных матриц.
Для ясности рассмотрим следующий пример входных матриц ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Начните с первой входной матрицы.
- Сдвиньте вторую входную матрицу на N -1 ступеньки вниз и N -1 ступеньки вправо, чтобы ее левый верхний элемент совпадал с нижним правым элементом предыдущего.
Представьте себе вторую сдвинутую матрицу, как если бы она была сложена поверх первой. Суммируйте два значения в совпадающей записи. Запишите остальные значения и заполните оставшиеся записи,
0
чтобы получить матрицу . С примерами ввода результат пока3 5 0 4 16 8 0 12 11
Для каждой оставшейся входной матрицы разнесите ее так, чтобы ее левый верхний угол совпадал с правым нижним краем накопленной матрицы результатов. В приведенном примере третья входная матрица дает
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
Выходной результат - это матрица полученная после включения последней входной матрицы.
Дополнительные правила и разъяснения
- и являются положительными целыми числами.
- При желании вы можете использовать и качестве дополнительных входов.
- Ввод и вывод могут быть приняты любым разумным способом . Их формат, как обычно, гибкий.
- Программы или функции разрешены на любом языке программирования . Стандартные лазейки запрещены .
- Самый короткий код в байтах побеждает.
Тестовые случаи:
В каждом случае сначала отображаются входные матрицы, а затем выходные данные.
, :
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