1 条题解
-
1
参考答案:
#include<iostream> using namespace std; const int N = 100010; int idx = 2, e[N], l[N], r[N]; void add(int k, int x) { e[idx] = x, r[idx] = r[k], l[r[k]] = idx, l[idx] = k, r[k] = idx++; } void del(int a) { r[l[a]] = r[a]; l[r[a]] = l[a]; } int main() { int m; r[0] = 1, l[1] = 0; cin >> m; while (m--) { string op; int k, x; cin >> op; if (op == "L") { cin >> x; add(0, x); } else if (op == "R") { cin >> x; add(l[1], x); } else if (op == "D") { cin >> k; del(k + 1); } else if (op == "IL") { cin >> k >> x; add(l[k + 1], x); } else { cin >> k >> x; add(k + 1, x); } } for (int i = r[0]; i != 1; i = r[i]) cout << e[i] << ' '; return 0; }
- 1
信息
- ID
- 100
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者