编程题
### 问题描述 在一个 $n$ 行 $m$ 列的矩阵上有一只喜欢蹦跳的袋鼠。矩阵的行自上而下编号为 $0\dots n-1$,矩阵的列自左向右编号为 $0 \dots m-1$。用 $(i,j)$ 表示矩阵上第 $i$ 行第 $j$ 列的格子。袋鼠会在矩阵上蹦跳,用 $(x_t,y_t)$ 表示袋鼠在第 $t$ 秒的位置。 给出参数 $A,B,P,Q$ ,袋鼠会按以下规则进行跳跃: $$ x_t = (A\cdot x_{t-1} + P) \mod n $$ $$ y_t = (B\cdot y_{t-1} + Q) \mod m $$ 袋鼠的初始位置是 $(x_0,y_0)$ 。给出 $q$ 组询问,对于第 $i$ 组询问,计算袋鼠在第 $k_i$ 秒时的位置。 ### 输入格式 第一行包括三个整数 $n,m,q\space(1\leq n,m\leq 2 \times 10^6,1 \leq q \leq 10^5)$ ,代表矩阵的行数、列数以及询问个数。**保证** $ 1 \leq n\cdot m \leq 2 \times 10^6$。 下一行包括六个整数 $x_0,y_0,A,B,P,Q \space(0 \leq x_0 < n, 0 \leq y_0 < m,0 \leq A,B,P,Q \leq 10^9)$ ,代表袋鼠最初的位置,以及移动的四个参数。 接下来 $q$ 行,第 $i$ 行包括一个正整数 $k_i \space (1 \leq k_i \leq 10^{18})$,代表第 $i$ 个询问的秒数。 ### 输出格式 输出 $q$ 行。第 $i$ 行输出两个整数 $x_i,y_i$ ,代表袋鼠在第 $i$ 个询问对应的时间所在的位置。 ### 样例输入1 ``` 3 4 2 0 0 4 3 2 2 1 4 ``` ### 样例输出1 ``` 2 2 2 0 ``` ### 样例输入2 ``` 134456 1 1 0 0 8121 1 28411 1 233 ``` ### 样例输出2 ``` 16747 0 ``` ### 说明 对于第一组样例,袋鼠按如下方式移动: $(0,0) \rightarrow$ $(2,2)\rightarrow$ $(1,0)\rightarrow$ $(0,2)\rightarrow$ $(2,0)$ 。 所以在第一秒,答案是 $2 \space 2$。 在第四秒,答案是 $2 \space 0$。
查看答案
赣ICP备20007335号-2