样例输入
6 2
1 2 3 4 5 6
样例输出
5 6 1 2 3 4
分析
一开始想得太复杂:每个字符直接跳到最终位置,还需要考虑M是否能够整除N,如果整除就代表一次循环之后只能使M个数字移至最终位置,不整除则一次循环之后所有数字都能移至最终位置。
后来参考了柳神的代码,学到了学到了!
C++代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
m = m % n;
vector<int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
reverse(a.begin(),a.end());
reverse(a.begin(),a.begin()+m);
reverse(a.begin()+m,a.end());
for (int i = 0; i < n; i++) {
if (i != 0) cout << " ";
cout << a[i];
}
return 0;
}