SZTG-L-P3369. 【模板】普通平衡树

提交1 通过1
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

题目背景

本题存在数据加强版,见 P6136。

题目描述

您需要动态地维护一个可重集合 MM,并且提供以下操作:

  1. 向 MM 中插入一个数 xx。
  2. 从 MM 中删除一个数 xx。(若有多个相同的数,应只删除一个)
  3. 查询 MM 中有多少个数比 xx 小,并且将得到的答案加 11。
  4. 查询如果将 MM 从小到大排列后,排名位于第 xx 位的数。
  5. 查询 MM 中 xx 的前驱(定义为 MM 中小于 xx,且最大的数)。
  6. 查询 MM 中 xx 的后继(定义为 MM 中大于 xx,且最小的数)。

对于操作 3,5,63,5,6,不保证当前可重集中存在数 xx。

对于操作 4,5,64,5,6,保证答案一定存在。

输入格式

第一行为 nn,表示操作的个数,下面 nn 行每行有两个数 opt\text{opt} 和 xx,opt\text{opt} 表示操作的序号。

输出格式

对于操作 3,4,5,63,4,5,6 每行输出一个数,表示对应答案。

10
1 106465
4 1
1 317721
1 460929
1 644985
1 84185
1 89851
6 81968
1 492737
5 493598
106465
84185
492737

说明/提示

54
1 1971
3 -6626
2 1971
1 -1536
5 5579
2 -1536
1 8680
4 1
5 9630
6 -798
6 3468
6 -991
1 7083
6 5231
2 8680
4 1
4 1
2 7083
1 2207
1 1545
5 5799
6 -7001
3 1999
3 1420
3 7784
5 4758
6 -543
4 1
4 2
5 7685
1 -8356
6 -8892
5 -5940
1 -3555
4 4
1 8959
3 -988
1 -3000
4 3
1 -2019
5 4390
2 2207
4 5
3 -9137
6 -7200
2 -2019
4 1
3 -442
3 37
2 -3555
4 3
1 8827
3 8897
5 6049
1
-1536
8680
8680
8680
8680
8680
7083
7083
7083
2207
1545
2
1
3
2207
1545
1545
2207
2207
-8356
-8356
2207
3
-3000
2207
1545
1
-3555
-8356
4
4
1545
5
1545
56
1 1494
3 8548
4 1
3 -5895
5 2303
6 -8449
3 3949
5 6151
3 -4487
6 -6921
2 1494
1 -8193
3 9423
3 -8432
1 -6654
6 -9516
1 -1063
2 -1063
1 -68
1 5076
2 -68
2 -6654
2 5076
6 -8503
2 -8193
1 5103
2 5103
1 3769
1 5720
6 -7921
2 3769
4 1
3 -4695
3 -935
5 7755
5 9915
2 5720
1 7825
1 -4488
1 8899
3 5470
3 -8694
4 1
2 -4488
2 7825
6 3365
5 9748
6 6372
5 9970
5 9864
5 9458
1 -3145
1 -6295
4 2
3 -4624
2 -3145
2
1494
1
1494
1494
2
1494
1
1494
2
1
-8193
-8193
3769
5720
1
1
5720
5720
2
1
-4488
8899
8899
8899
8899
8899
8899
-3145
2

【数据范围】

对于 100%100\% 的数据,1≤n≤1051\le n \le 10^5,∣x∣≤107|x| \le 10^7。

来源:Tyvj1728,原名:普通平衡树。

在此鸣谢!

(1≤opt≤6 1 \leq \text{opt} \leq 6 )