双链表搞完了
#include<bits/stdc++.h> using namespace std; #define maxn 1000005 int tot,bac[maxn],fa[maxn]; char a[maxn],b[maxn]; int main(){ cin>>(a+); cin>>(b+); tot=; //cout<<strlen(a)<<endl; ),lb=strlen(b+); ;j<=la;j++){ fa[j]=tot-; )) bac[j]=-; else bac[j]=++tot; //cout<<j<<" "<<fa[j]<<" "<<bac[j]<<endl; } ; ; ;j<=lb;j++){ ){ if(b[j]=='e'){ i=; continue; } int l=fa[z]; a[++tot]=b[j]; fa[tot]=l; bac[tot]=z; fa[z]=tot; bac[l]=tot; z=bac[tot]; }else{ if(b[j]=='i'){ i=; continue; } else if(b[j]=='x'){ int l=fa[z]; int r=bac[z]; //cout<<l<<" "<<r<<endl; ){ fa[r]=l; bac[l]=r; z=bac[l]; }else{ z=l; bac[l]=-; } } else if(b[j]=='f'){ ]; ;ii=bac[ii]){ if(a[ii]==c){ z=ii; break; } } j++; } else if(b[j]=='l'){ ) z=bac[z]; } else if(b[j]=='h'){ z=fa[z]; ) z=bac[z]; } } } ; ){ q=bac[q]; cout<<a[q]; } }