蒟蒻链表写挂了(
另外不懂某些佬为什么要双向链表
// g++ abc344_e.cpp -o 1
#include <iostream>
#include <map>
using namespace std;
const int S = 2e5 + 5;
int n, q;
struct N {
int v, pre, nxt;
} a[S];
map<int, int> mp;
int main() {
cin >> n;
a[0].nxt = 1;
mp[0] = 0;
for (int i = 1, x; i <= n; i++) {
cin >> x;
mp[x] = i;
a[i].pre = i - 1, a[i].nxt = i + 1, a[i].v = x;
}
a[n].nxt = -1;
cin >> q;
int op, x, y;
while (q--) {
cin >> op >> x;
if (op == 1) {
cin >> y;
int p = mp[x], nx = a[p].nxt;
n++;
if (nx != -1) a[nx].pre = n;
a[p].nxt = n;
mp[y] = n;
a[n].pre = p, a[n].nxt = nx, a[n].v = y;
} else {
int p = mp[x], pr = a[p].pre, nx = a[p].nxt;
a[pr].nxt = nx;
if (nx != -1) a[nx].pre = pr;
mp[x] = -1;
}
}
int p = a[0].nxt;
while (p != -1) {
cout << a[p].v << ' ';
p = a[p].nxt;
}
return 0;
}