eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

2D-переворот

2D-переворот

Матрица \textbf{A} содержит \textbf{N} строк, пронумерованных от \textbf{1} до \textbf{N}, и \textbf{M} столбцов, пронумерованных от \textbf{1} до \textbf{M}. Изначально элемент в строке \textbf{i} и столбце \textbf{j} равен \textbf{A_\{i,j\} = (i - 1) · M + j - 1}. Некто совершил несколько преобразований матрицы. Каждым преобразованием было либо горизонтальное ее обращение, либо вертикальное. Преобразование задается четырьмя целыми числами \textbf{X_1}, \textbf{Y_1}, \textbf{X_2} и \textbf{Y_2} таких что \textbf{1 }≤ \textbf{X_1} ≤ \textbf{X_2} ≤ \textbf{N} и \textbf{1} ≤ \textbf{Y_1} ≤ \textbf{Y_2} ≤ \textbf{M}. После горизонтального обращения элемент в строке \textbf{i} и столбце \textbf{j} становится равным \textbf{A^\{'\}_\{i,j\} = A_\{i,Y2-j+Y1\}} если \textbf{X_1} ≤ \textbf{i} ≤ \textbf{X_2} и \textbf{Y_1} ≤ \textbf{j }≤ \textbf{Y_2}, иначе он остается прежним (\textbf{A^\{'\}_\{i,j\} = A_\{i,j\}}). После вертикального обращения элемент в строке \textbf{i} и столбце \textbf{j} становится равным \textbf{A^\{'\}_\{i,j\} = A_\{X2-i+X1,j\}} если \textbf{X_1} ≤ \textbf{i} ≤ \textbf{X_2} и \textbf{Y_1} ≤ \textbf{j} ≤ \textbf{Y_2}, иначе он остается прежним (\textbf{A^\{'\}_\{i,j\} = A_\{i,j\}}). Ниже приведен пример выполнения сначала горизонтального обращения, а потом вертикального. \includegraphics{https://static.e-olymp.com/content/37/37a4820bebade9fc28e51290070e197b0b9ce3cf.jpg} По заданным \textbf{N}, \textbf{M} и последовательности преобразований найти результирующую матрицу. \InputFile Первая строка содержит целые числа \textbf{N} и \textbf{M }(\textbf{1 }≤ \textbf{N}, \textbf{M }≤ \textbf{2000}). Следующая строка содержит количество операций \textbf{K }(\textbf{1 }≤ \textbf{K }≤ \textbf{2000}). Каждая из следующих \textbf{K} строк описывает одну операцию. Первый символ строки указывает на тип операции ('\textbf{H}' в случае горизонтального обращения и '\textbf{V}' вслучае вертикального), после которого следуют четыре целых числа \textbf{X_1}, \textbf{Y_1}, \textbf{X_2} и \textbf{Y_2}, описывающих выбранную прямоугольную область. Операции задаются в порядке их выполнения. \OutputFile В первой строке вывести \textbf{N} целых чисел, разделенных пробелом: они соответствуют сумме элементов первой, второй, ..., \textbf{N}-ой строки матрицы, полученной после выполнения всех операций. Аналогично вторая строка должна содержать \textbf{M} разделенных пробелом целых чисел: суммы элементов первого, второго, ..., \textbf{M}-го столбца результирующей матрицы.
Лимит времени 5 секунд
Лимит использования памяти 256 MiB
Входные данные #1
5 6
2
H 2 2 4 5
V 1 3 5 5
Выходные данные #1
87 87 87 87 87
60 74 73 72 71 85