解题思路
这道题我一开始想的是直接移动数组,但觉得这样的效率太低了,于是我就不移动数组,而是移动初始坐标即可。
代码
#include <iostream>
using namespace std;
int a[1000000], in[100001] = {0};//in表示初始坐标
int main()
{
int n, m, k;
cin >> n >> m >> k;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 1; i <= m; i++)
{
cin >> in[i];
in[i] += in[i - 1];
in[i] %= n;
}
for (int i = 1; i <= m; i++)
{
for (int j = in[i]; j < in[i] + k; j++)
{
cout << a[(j % n + n) % n] << ' ';
}
cout << endl;
}
return 0;
}