https://atcoder.jp/contests/abc344/tasks/abc344_e
给一个不含重复数字的数组,两个询问。
1 x y:在x后面插入一个数y
2 x:删除x
#include<iostream>
#include<map>
using namespace std;
map<int,int> l,r;
void insert(int x,int y,int c){l[c]=x;r[c]=y;l[y]=c;r[x]=c;
}
void del(int x){l[r[x]]=l[x];r[l[x]]=r[x];
}
int main(){int n;cin>>n;int sd=-1e9-10,ed=1e9+10;int ll=sd,rr=ed;r[sd]=ed,l[ed]=sd;for(int i=1;i<=n;i++){int x;cin>>x;insert(ll,rr,x);ll=x,rr=r[x];}int q;cin>>q;while(q--){int op,x,y;cin>>op;if(op==1){cin>>x>>y;ll=x,rr=r[x];insert(ll,rr,y);}else{cin>>x;del(x);}}for(int i=r[sd];i!=ed;i=r[i]) cout<<i<<' ';cout<<endl;return 0;
}