Соревнование
Дана n x m
матрица с n > 1
и m > 1
заполнена целыми числами
1 2 3 4 5 6
и список целых чисел с ровно столько же значений, сколько 2x2
блоков в матрице ( (n-1)*(m-1)
если вам нужно точное число)
[1, 2]
Выведите матрицу с каждым 2x2
блоком, повернутым на текущее значение в списке в указанном порядке. Приведенный выше пример даст
4 6 2 5 3 1
Первый блок поворачивается один раз вправо, а второй блок поворачивается два вправо.
Заметки
- Положительное целое число означает, что вы поворачиваетесь вправо на столько шагов.
- Отрицательное целое число означает, что вы поворачиваетесь влево на столько шагов.
- Ноль означает, что вы не вращаетесь.
- Вы вращаете блоки по строкам. Это означает, что вы начинаете с первого ряда и идете направо. Как только вы повернули каждый блок в этом ряду, вы переходите к следующему. В конце каждый блок вращался ровно один раз.
- Имейте в виду, что блоки перекрывают друг друга. Первая матрица выше , имеет блоки
[[1,2],[4,5]]
и[[2,3],[5,6]]
, например. - Каждое вращение блока влияет на вращение соседних блоков. Вот почему вы должны делать повороты по схеме, описанной выше.
правила
- Вы можете принять вход в наиболее удобном формате. Пожалуйста, укажите в своем ответе, какой вы используете. Это не позволяет вам читать матрицу по блокам, хотя.
- Функция или полная программа разрешены.
- Правила по умолчанию для ввода / вывода.
- Применяются стандартные лазейки .
- Это код-гольф , поэтому выигрывает меньшее количество байт. Tiebreaker является более ранним представлением.
Контрольные примеры
Формат ввода здесь представляет собой список списков для матрицы и обычный список значений.
[[1,2], [3,4]], [-3] -> [[4,1], [3,2]] [[1,1,1], [1,1,1]], [-333, 666] -> [[1,1,1], [1,1,1]] [[1,2,3], [4,5,6]], [1,2] -> [[4,6,2], [5,3,1]] [[1,2,3], [4,5,6], [7,8,9]], [4,0,12, -20] -> [[1,2,3], [4, 5,6], [7,8,9]] [[1,2,3,4,5], [5,4,3,2,1], [1,2,3,4,5]], [2, -3,4,1,6, 24,21, -5] -> [[4,1,5,2,4], [2,1,3,5,5], [3,2,4,3,1]]
Удачного кодирования!
4,=
правильное значение по модулю (разве ваш блок должен запускаться хотя бы один раз?).