#HX3792. 优先队列题六:x轴最大距离

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

题目描述

题目描述

考虑 xx 轴上的点组成的集合 SS,你需要写一个数据结构,支持以下操作:

(1)+ x:添加一个坐标为 xx 的点到集合 SS 中。

(2)- n:删除第 nn 次添加的点,添加操作按顺序从 1 编号,其他操作不参与计数。

(3)? x:计算 SS 集合中,与 xx 的距离最大的点的距离,保证询问时,集合 SS 中,至少有一个点。

两个点 x1x_1x2x_2 的距离等于坐标之差的绝对值:x1x2|x_1-x_2|

输入描述

第 1 行,1 个正整数 QQ,表示操作的总数。

接下来 QQ 行,每行包含一条操作。

输出描述

对每个询问操作,输出最大的距离。

样例 1

5
+ 8
+ -1
? 5
- 2
? -100
6
108

样例 2

6
+ 5
? 2
+ 999999999
+ -3
- 2
? 2
3
5

样例 3

10
+ 6
? -6
- 1
+ 6
+ 9
- 1
? 8
? -3
- 2
+ -3
12
2
12

说明提示

样例 1 说明:

第 1、2 行向 SS 中添加了两个点:8,1-1

第 3 行询问 SS 中点与 5 的最大距离:1-1 和 5 的距离等于 15=6|-1-5|=6,是最大的。

第 4 行删除第 2 次添加操作添加的点,SS 中只剩下 1 个点:8。

第 5 行询问 SS 中点与 100-100 的最大距离:8 和 100-100 的距离等于 8(100)=108|8-(-100)|=108,是最大的。

样例 2 说明:

第 1 行向 SS 中添加了 1 个点:5。

第 2 行询问 SS 中点与 2 的最大距离:5 和 2 的距离等于 52=3|5-2|=3,是最大的。

第 3、4 行向 SS 中添加了 2 个点:999999999,3-3

第 5 行删除第 2 次添加操作添加的点 999999999,SS 中剩下 2 个点:5,3-3

第 6 行询问 SS 中点与 2 的最大距离:3-3 和 2 的距离等于 32=5|-3-2|=5,是最大的。

数据范围

1Q2×1051\le Q\le2\times10^5

109x109-10^9\le x\le10^9

1n1\le n\le 添加操作次数。