47 lines
968 B
C++
47 lines
968 B
C++
#include <stdio.h>
|
|
|
|
struct Node{
|
|
int prev, next;
|
|
};
|
|
|
|
Node map[100000];
|
|
|
|
int main() {
|
|
map[0].prev = 1;
|
|
map[0].next = 1;
|
|
map[1].prev = 0;
|
|
map[1].next = 0;
|
|
int n;
|
|
int cmd, x, y;
|
|
scanf("%d", &n);
|
|
while (n) {
|
|
scanf("%d %d", &cmd, &x);
|
|
switch(cmd) {
|
|
case 1: {
|
|
scanf("%d", &y);
|
|
map[y].prev = x;
|
|
map[y].next = map[x].next;
|
|
map[x].next = y;
|
|
map[map[y].next].prev = y;
|
|
break;
|
|
}
|
|
case 2: {
|
|
printf("%d\n", map[x].next);
|
|
break;
|
|
}
|
|
case 3: {
|
|
map[map[x].prev].next = map[x].next;
|
|
map[map[x].next].prev = map[x].prev;
|
|
break;
|
|
}
|
|
}
|
|
n--;
|
|
}
|
|
|
|
int cur = map[0].next;
|
|
while (cur != 0) {
|
|
printf("%d\n", cur);
|
|
cur = map[cur].next;
|
|
}
|
|
return 0;
|
|
} |