点击查看代码
#include<bits/stdc++.h>using namespace std;const int N=500005;
int l[N],r[N];
int n,m;
bool del[N];void insert(int x,int y)
{r[x]=r[y],l[x]=y;l[r[y]]=x,r[y]=x;
}void remove(int x)
{r[l[x]]=r[x],l[r[x]]=l[x];
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;r[0]=1;for(int i=1;i<=n;i++){r[i]=i+1;l[i]=i-1;}r[n]=0;int op,x,y;while(m--){cin>>op;if(op==1){cin>>x>>y;if(x==y||del[x]||del[y]) continue;remove(x);insert(x,l[y]);}else if(op==2){cin>>x>>y;if(x==y||del[x]||del[y]) continue;remove(x);insert(x,y);}else if(op==3){cin>>x;if(del[x]) continue;remove(x);del[x]=true;}}int p=r[0];if(p==0) cout<<"Empty!";for(p=r[0];p!=0;p=r[p]) cout<<p<<' ';return 0;
}