4199: Max - Min Query

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

# Max - Min Query ### 内存 1024MB ### 时间 2S ## 题目描述 我们有一个整数的多重集$S$,最初为空。给定$Q$个查询,按顺序处理它们。每个查询是以下三种类型之一: 1. `1 x`:将$x$插入$S$中。 2. `2 x c`:从$S$中移除$m$个$x$,其中$m = min$($c$, $S$中$x$的数量)。 3. `3`:输出($S$的最大值) - ($S$的最小值)。保证执行此查询时$S$非空。 ## 输入格式 输入从标准输入中给出,格式如下: $Q$ $query_1$ $query_2$ $\vdots$ $query_Q$ $query_i$表示第$i$个查询,格式为以下之一: `1 x` `2 x c` `3` ## 输出格式 对于每个类型$3$的查询,按顺序输出结果,每个结果占一行。 ## 输入输出样例 ### 输入样例1 ``` 8 1 3 1 2 3 1 2 1 7 3 2 2 3 3 ``` ### 输出样例1 ``` 1 5 4 ``` ### 输入样例2 ``` 4 1 10000 1 1000 2 100 3 1 10 ``` ### 输出样例2 ``` ``` ## 数据范围与提示 【样例1说明】 多重集$S$的变化过程如下: 1. 插入3,S = {3} 2. 插入2,S = {2, 3} 3. 输出3 - 2 = 1 4. 插入2,S = {2, 2, 3} 5. 插入7,S = {2, 2, 3, 7} 6. 输出7 - 2 = 5 7. 移除两个2,S = {3, 7} 8. 输出7 - 3 = 4 【样例2说明】 如果给定的查询不包含类型$3$,则不应输出任何内容。 【数据范围】 $1 ≤ Q ≤ 2×10^5$ $0 ≤ x ≤ 10^9$ $1 ≤ c ≤ Q$ 当给出类型$3$的查询时,$S$非空。 所有输入值都是整数 ## 题目来源 ABC253C