#120. 持久化序列

内存限制:768 MiB 时间限制:1500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: negiizhao

题目描述

这是一道模板题。

您需要维护一个序列,其中需要提供以下操作:

  1. 插入一个数到序列的第 t t t 版本使其成为序列的第 k k k 项,这个数为 x x x
  2. 删除序列的第 t t t 版本的第 k k k 项;
  3. 查询序列的第 t t t 版本的第 k k k 项。

0 0 0 个版本为空序列。修改操作不会影响被修改的版本,而总是产生一个新版本。

输入格式

第一行有一个正整数 n n n 表示操作的数量。

接下来 n n n 行每行第一个正整数 opt opt opt 表示操作的类型,后面有 3 3 3 个整数 t,k,x t, k, x t,k,x2 2 2 个整数 t,k t, k t,k 表示操作的参数。

输出格式

对于每个查询操作输出一行一个数,表示查询的结果。

样例

样例输入

17
1 0 1 1
1 1 1 2
1 2 1 3
2 3 2
3 4 2
1 4 3 4
1 5 1 5
3 3 2
1 3 4 6
1 6 3 7
1 7 1 8
3 8 2
3 7 3
2 8 4
2 9 2
3 11 4
3 10 4

样例输出

1
2
3
1
6
4

样例解释

每次操作后的序列如下

1 | 1
2 | 2 1
3 | 3 2 1
4 | 3 1
(=> 1)
5 | 3 1 4
6 | 5 3 1 4
(=> 2)
7 | 3 2 1 6
8 | 5 3 7 1 4
9 | 8 3 2 1 6
(=> 3)
(=> 1)
10 | 5 3 7 4
11 | 8 2 1 6
(=> 6)
(=> 4)

数据范围与提示

1≤n≤3×105,1≤opt≤3,0≤x<109 1 \leq n \leq 3 \times 10^5, 1 \leq opt \leq 3, 0 \leq x < 10^9 1n3×105,1opt3,0x<109,保证所有操作合法。

由于数据量较大,可能需要使用特别的读入方式。