题目
样例输入
8
3
3 2
8 -3
3 -2
样例输出
1 2 4 3 5 8 6 7
代码
使用vector容器,就可以用函数find()、distance()找到学生所站位置,先让该学生出队(erase删除)再插入。
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> a(1010);
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
a[i]=i;//初始化队伍
}
for(int i=1;i<=m;i++)
{
int stu,num,pos;
cin>>stu>>num;
auto it=find(a.begin(), a.end(), stu);
pos =distance(a.begin(), it);
a.erase(it);//删除a容器中pos位置的单个字符
a.insert(a.begin()+pos+num, stu);
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
运行
由于真题系统改版后无法测试了,就先用样例试一下吧。
再试一下插在队头和插在队尾的情况。