测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A4695. 集合操作

编程题 普及-
知识点

题目描述

> 时间限制: 1000ms
> 空间限制: 128mb

给定一个空的可以有重复数字的集合$S$,可以对其进行三种操作。

1. 1 x ,指代在集合当中加入元素x
2. 2 x c , 指代从$S$当中删除$c$个x元素,假如不满足c个元素,则删除剩下的所有x
3. 3,输出此时集合$S$当中最大值与最小值的差。

现在总计按照操作的先后顺序,给出了$n$次的操作,求解对应的输出内容。

输入格式

第一行输入一个整数$n$,代表共有$n$次操作

随后$n$行,每行给出三种操作当中的其中一种操作。

输出格式

输出所有操作3的内容,且每一次操作独占一行。

输入输出样例

输入 #1
7
1 3
1 2
1 1
2 1 5
3 
2 2 5
3
输出 #1
1
0

说明/提示

## 提示

### 【样例1解释】

以下为集合$S$在每次操作当中的变化

1. 加入了元素3 , $S = {3}$
2. 加入了元素2 , $S = {3,2}$
2. 加入了元素1 , $S = {3,2,1}$
4. 删除5个元素1,但是其中仅有一个元素1,故只删除这一个元素1 , $S = {3,2}$
5. 查询此时最大的元素,为3,最小的元素,为2,故输出 3 - 2 = 1
6. 删除5个元素2,但是其中仅有一个元素2,故只删除这一个元素2 , $S = {3,2}$
7. 查询此时最大的元素,为3,最小的元素,为3,故输出 3 - 3 = 0


#### 【数据范围】

- $1 \leq n \leq 2\times 10^5$
- $0 \leq x \leq 10^9$
- $1 \leq c \leq n$
- 当给出类型为 3 的查询时, $S$ 不为空。
- 输入的所有值都是整数。
上一题 去做题 下一题