题解:使用vector存储数据,对步长m预处理之后,直接调用reverse函数三次完成平移操作
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n, m;
scanf("%d%d", &n, &m);
m %= n;
vector<int> d(n);
for (int i = 0; i < n; i++)
scanf("%d", &d[i]);
reverse(d.begin(), d.end());
reverse(d.begin(), d.begin() + m);
reverse(d.begin() + m, d.end());
for (int i = 0; i < n; i++)
{
printf("%d", d[i]);
if (i < n - 1)
printf(" ");
}
return 0;
}