SP18261 IITWPC4G - Maggu and Weird things
题目描述
Maggu 是个有点奇怪的人。他总是在无聊的时候沉迷于一些古怪的游戏。由于他本身就是个不寻常的男孩,他只愿意使用长度为偶数的数组来进行他的游戏。此外,Maggu 不能处理太大的数字,所以他把所有运算结果都取模 $10^9 + 7$。
Maggu 特别喜欢对数组进行某种“奇怪的操作”。第一类奇怪操作的定义如下:
```
tempSeq[n]; // 临时数组
for (i = 0; i < n; i++) {
int cnt = 0;
for (cnt = 0; cnt < k; cnt++) {
int j = (i + cnt) % n;
if (cnt % 2 == 0) tempSeq[i] += seq[j];
else tempSeq[i] -= seq[j];
}
}
for (int i = 0; i < n; i++) seq[i] = tempSeq[i];
```
第二类奇怪操作更有趣。在这个操作里,他会交换数组中相邻的元素。
伪代码如下:
```
for (int i = 0; i < n; i += 2) swap(seq[i], seq[i + 1]);
```
所谓“超级奇怪操作”,是指对数组先执行第一类奇怪操作,然后再执行第二类奇怪操作。他希望对数组执行 $m$ 次这样的操作,并想知道最终数组会变成什么样。
Maggu 已经玩腻了这个游戏,所以他请你帮忙计算 $m$ 次“超级奇怪操作”后数组的最终状态。
输入格式
第一行包含测试用例的数量 $T$($1 \le T \le 100$)。
每个测试用例的第一行给出了三个整数 $n, k, m$($1 \le n \le 50$,$1 \le k \le n$,$1 \le m \le 10^9$)。注意,$n$ 必定是偶数。
接下来的一行提供了 $n$ 个整数,表示数组 $seq[i]$ 的初始值(从 $0$ 开始),其中 $-10^9 \le seq[i] \le 10^9$。
输出格式
对于每个测试用例,输出 $n$ 个整数,这些数表示经过 $m$ 次“超级奇怪操作”后的数组 $seq[i]$ 的状态。
**本翻译由 AI 自动生成**