#ABC253C. 最大值减最小值查询

最大值减最小值查询

最大值减最小值查询

题目描述

我们有一个初始为空的整数多重集合 SS

给定 QQ 个查询,请按顺序处理它们。

每个查询是以下类型之一。

  • 1 x:向 SS 中插入一个 xx
  • 2 x c:从 SS 中删除 mmxx,其中 m=min(c,m = \mathrm{min}(c, SS 中包含的 xx 的个数))
  • 3:打印 (S(S 的最大值)(S)-(S 的最小值))。保证给出该查询时 SS 非空。

输入格式

输入按以下格式从标准输入给出:

Q
query_1
⋮
query_Q

ii 个查询 queryi\mathrm{query}_i 是以下格式之一:

1 x
2 x c
3

输出格式

按给出的顺序打印所有类型 3 查询的答案,每个答案占一行。

样例

8
1 3
1 2
3
1 2
1 7
3
2 2 3
3
1
5
4

多重集合 SS 的变化过程如下。

第 1 个查询:向 SS 中插入 3。此时 SS{3}\lbrace 3 \rbrace

第 2 个查询:向 SS 中插入 2。此时 SS{2,3}\lbrace 2, 3 \rbrace

第 3 个查询:S={2,3}S = \lbrace 2, 3\rbrace 的最大值为 3、最小值为 2,因此打印 32=13-2=1

第 4 个查询:向 SS 中插入 2。此时 SS{2,2,3}\lbrace 2,2,3 \rbrace

第 5 个查询:向 SS 中插入 7。此时 SS{2,2,3,7}\lbrace 2, 2,3, 7\rbrace

第 6 个查询:S={2,2,3,7}S = \lbrace 2,2,3, 7\rbrace 的最大值为 7、最小值为 2,因此打印 72=57-2=5

第 7 个查询:由于 SS 中有两个 2,且 min(2,3)=2\mathrm{min(2,3)} = 2,所以从 SS 中删除两个 2。此时 SS{3,7}\lbrace 3, 7\rbrace

第 8 个查询:S={3,7}S = \lbrace 3, 7\rbrace 的最大值为 7、最小值为 3,因此打印 73=47-3=4

4
1 10000
1 1000
2 100 3
1 10

如果给定查询中不包含类型 3 的查询,则什么都不打印。

数据范围

  • 1Q2×1051 \le Q \le 2 \times 10^5
  • 0x1090 \le x \le 10^9
  • 1cQ1 \le c \le Q
  • 给出类型 3 的查询时,SS 非空。
  • 输入中的所有值均为整数。
难度 普及
通过率
尝试 0
已通过 0
ID
2442
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签