CF400C Inna and Huge Candy Matrix

题目描述

Inna 和 Dima 想给 Sereja 一个惊喜。他们带来了一块非常巨大的糖果矩阵,即使对于 Sereja 来说也算很大!我们将从上到下将这块大型矩阵的行编号为 $1$ 到 $n$,从左到右将列编号为 $1$ 到 $m$。我们用 $(i, j)$ 表示第 $i$ 行第 $j$ 列的单元格。不出所料,有些单元格里放着糖果。总共有 $p$ 颗糖果:第 $k$ 颗糖果位于单元格 $(x_{k}, y_{k})$。 随着时间临近晚餐,Inna 正准备从矩阵中吃掉她最喜欢的 $p$ 颗糖果,这时 Sereja(出于一个他没有与任何人分享的原因)将矩阵顺时针旋转 $x$ 次,每次 $90$ 度。然后他又对矩阵进行了 $y$ 次水平旋转。最后,他又将矩阵逆时针旋转 $z$ 次,每次 $90$ 度。下图展示了矩阵旋转的方式。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF400C/168ff7db18e226cd45113b10da5f3c7fbd5680f5.png) Inna 非常沮丧,但 Dima 突然意识到两件事:糖果没有被破坏,并且他还记得在 Sereja 做出奇怪操作之前 Inna 最喜欢的糖果所在的所有单元格。请帮助他们,找到每颗糖果经过 Sereja 变换之后在糖果矩阵中的新坐标!

输入格式

输入的第一行包含五个整数 $n, m, x, y, z, p$,其中 $1 \leq n, m \leq 10^9$,$0 \leq x, y, z \leq 10^9$,$1 \leq p \leq 10^5$。 接下来的 $p$ 行中,每行包含两个整数 $x_{k}, y_{k}$,满足 $1 \leq x_{k} \leq n$,$1 \leq y_{k} \leq m$——表示第 $k$ 颗糖果的初始坐标。两颗糖果可以出现在同一个单元格中。

输出格式

对于每颗糖果,输出一行,表示其经过所有变换后在矩阵中的新坐标,两数之间用空格分隔。

说明/提示

说明:水平旋转的含义是矩阵的镜像操作。例如,下面的矩阵 ``` QWER REWQ ASDF -> FDSA ZXCV VCXZ ``` 由 ChatGPT 5 翻译