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 自动生成**