文章
16
粉丝
0
获赞
43
访问
2.2k
#include <bits/stdc++.h>
using namespace std;
void func(vector<int>& s, int x)
{
int n = s.size();
if (n <= 1) return;
// 1. Shift: 把索引为 x 的数及其后面的数移到前面
// rotate(first, middle, last) 会将 [middle, last) 移到 [first, middle) 前面
rotate(s.begin(), s.begin() + x, s.end());
// 2. Flip: 反转前 n/2 个元素
int flip_len = n / 2;
reverse(s.begin(), s.begin() + flip_len);
}
int main()
{
int n,k;
while(cin >> n >> k)
{
vector<int> s;
for(int i = 1;i <= n;++i)
{
s.push_back(i);
}
for(int i = 0;i < k;++i)
{
int x;
cin >> x;
func(s,x);
}
int len = s.size();
for(int j = 0;j < len;++j)
{
cout << s[j];
if(j != len-1)
{
cout << ' ';
}
}
cout << '\n';
}
return 0;
}
本质考查STL使用(
登录后发布评论
暂无评论,来抢沙发