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

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

5 секунд
256 мегабайтів
Дуже легка

Матриця містить рядків, пронумерованих від до , та стовпців, пронумерованих від до . Спочатку елемент у рядку та стовпці дорівнює A_{i,j} = (i - 1) \cdot M + j - 1.

Дехто здійснив декілька перетворень матриці. Кожне перетворення було або горизонтальним, або вертикальним. Перетворення задається чотирма цілими числами X_1, Y_1, X_2 і Y_2 такими, що 1 \le X_1 \le X_2 \le N і 1 \le Y_1 \le Y_2 \le M.

Після горизонтального перетворення елемент у рядку та стовпці стає рівним A'_{i,j} = A_{i,\,Y_2-j+Y_1}, якщо X_1 \le i \le X_2 і Y_1 \le j \le Y_2, інакше він залишається попереднім (A'_{i,j} = A_{i,j}). Після вертикального перетворення елемент у рядку та стовпці стає рівним A'_{i,j} = A_{X_2-i+X_1,\,j}, якщо X_1 \le i \le X_2 і Y_1 \le j \le Y_2, інакше він залишається попереднім (A'_{i,j} = A_{i,j}).

Нижче наведено приклад виконання спочатку горизонтального перетворення, а потім вертикального.

За заданими , та послідовністю перетворень знайдіть результуючу матрицю.

Вхідні дані

Перший рядок містить цілі числа та (1 \le N,\,M \le 2000). Наступний рядок містить кількість операцій (1 \le K \le 2000). Кожен з наступних рядків описує одну операцію. Перший символ рядка вказує на тип операції (H у випадку горизонтального перетворення та V у випадку вертикального), після якого йдуть чотири цілі числа X_1, Y_1, X_2, Y_2, які описують обрану прямокутну область. Операції задаються у порядку їх виконання.

Вихідні дані

У першому рядку виведіть цілих чисел, відокремлених пропуском: вони відповідають сумі елементів першого, другого, , -го рядка матриці, отриманої після виконання усіх операцій. Аналогічно, другий рядок повинен містити відокремлених пропуском цілих чисел: суми елементів першого, другого, , -го стовпця результуючої матриці.

Приклади

Приклад 1

Loading
Loading