一、问题链接
二、思路
模拟,用vector数组及find泛型算法,进行元素插入删除操作
注意:对vector数组元素操作时,由于insert() 方法会通过将数组拷贝到新的位置来实现,因此数组每次插入元素后需重新计算迭代器。所以要先删除(erase),再插入(insert),顺序颠倒则会报错。
三、参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n,m,p,q;
cin>>n>>m;
vector<int> line;
for(int i=1;i<=n;i++){
line.push_back(i);
}
while(m--){
cin>>p>>q;
auto i = find(line.begin(),line.end(),p);
line.erase(i);
line.insert(i+q,p);
}
for(auto i:line){
cout<<i<<" ";
}
return 0;
}