为何TLE
#include<bits/stdc++.h>
using namespace std;
const int N = 4e5 + 10;
#define int long long
struct {
int lst,nxt;
int val;
}a[N];
map<int,int>v;
int q,n,tot,head,tail;
void insert(int x,int y,int k){
int num = v[x];
if(num == tail)tail = k;
int nxt = a[num].nxt;
a[nxt].lst = k,a[num].nxt = k;
a[k].lst = num,a[k].nxt = nxt;
a[k].val = y;
}
void del(int x){
int num = v[x];
if(num == head)head = a[num].nxt;
int lst = a[num].lst;
int nxt = a[num].nxt;
a[nxt].lst = lst;
a[lst].nxt = nxt;
}
signed main(){
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i].val;
a[i].lst = i - 1,a[i].nxt = i + 1;
v[a[i].val] = i;
}
tot = n,head = 1,tail = n;
a[n].nxt = 0;
cin >> q;
for(int i = 1;i <= q;i++){
int opt,x,y;
cin >> opt;
if(opt == 1){
cin >> x >> y;
tot ++;
v[y] = tot;
insert(x,y,tot);
}
else{
cin >> x;
del(x);
}
}
for(int i = head;;i = a[i].nxt){
cout << a[i].val << " ";
if(i == tail)break;
}
return 0;
}