#ABC253C. [ABC253C] 最大值 - 最小值查询(Max - Min Query)

    ID: 2729 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>ABC入门算法闯关STL与数据结构

[ABC253C] 最大值 - 最小值查询(Max - Min Query)

题目描述

我们有一个整数的多重集 SS,最初为空。给定 QQ 个查询,按顺序处理它们。每个查询是以下三种类型之一:

  1. 1 x:将 xx 加入 SS 中。
  2. 2 x c:从 SS 中移除 mmxx,其中 m=min(c,m=\min(c, SSxx 的数量))
  3. 3:输出(SS 的最大值)-SS 的最小值)。保证执行此查询时 SS 非空。

输入格式

第一行输入一个整数 QQ

接下来 QQ 行,每行一个操作,格式如题。

输出格式

按顺序输出每个 33 型询问的答案。

每次回答完要换行。

样例 #1

样例输入 #1

8
1 3
1 2
3
1 2
1 7
3
2 2 3
3

样例输出 #1

1
5
4

样例 #2

样例输入 #2

4
1 10000
1 1000
2 100 3
1 10

样例输出 #2


说明/提示

样例说明 1

多重集 SS 的变化过程如下:

  1. 插入 3S={3}3,S = \{3\}
  2. 插入 2S={2,3}2,S = \{2, 3\}
  3. 输出 32=13 - 2 = 1
  4. 插入 2S={2,2,3}2,S = \{2, 2, 3\}
  5. 插入 7S={2,2,3,7}7,S = \{2, 2, 3, 7\}
  6. 输出 72=57 - 2 = 5
  7. 移除两个 2S={3,7}2,S = \{3, 7\}
  8. 输出 73=47 - 3 = 4

样例说明 2

如果给定的查询不包含类型 33 ,则不应输出任何内容。

数据范围

对于全部测试点,数据保证:

  • 1cQ2×1051 \le c \le Q \le 2 \times 10^5
  • 0x1090 \le x \le 10^9
  • 当给出类型 33 的查询时,SS 非空。当输入值都是整数。