题目来自<算法竞赛入门经典>p93-94(移小球)
#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
int main()
{
list<int> s;
int n,t;
cin>>n>>t;
for(int i=1;i<=n;++i)
s.push_back(i); //在list尾加入元素的函数.
for(int i=0;i<t;++i){
char type;
int a,b;
cin>>type>>a>>b;
if(type=='A'){
s.remove(a); //删除list中为a的节点.
s.insert(find(s.begin(),s.end(),b),a); //在list中查找b并在之前插入a的函数.
}
else{
s.remove(a);
list<int>::iterator it=find(s.begin(),s.end(),b);
it++;
s.insert(it,a);
}
}
for(list<int>::iterator iter=s.begin();iter!=s.end();++iter)
cout<<*iter<<' ';
cout<<endl;
return 0;
}