原题地址
这是代码:
#include<iostream>
#include<list>
using namespace std;
int del(int n,list<int> l)
{
int pos=0;
list<int>::iterator iter;
for(iter=l.begin();iter!=l.end();iter++)
{
pos++;
if(n==*iter)
{
l.remove(n);
break;
}
}
return pos;
}
int main()
{
int n,m,i=1;
cin>>n>>m;
list<int>l(n);
list<int>::iterator iter=l.begin();
for(iter=l.begin();iter!=l.end();iter++)
{
*iter=i;
i++;
}
int p[m],q[m],pos;
for(i=0;i<m;i++)
{
iter=l.begin();
cin>>p[i]>>q[i];
pos=del(p[i],l);//找到要移动的学生的位置
l.remove(p[i]);
for(int j=1;j<pos+q[i];j++)
{
iter++;
}
l.insert(iter,p[i]);
}
for(iter=l.begin();iter!=l.end();iter++)
{
cout<<*iter<<" ";
}
return 0;
}