A36051.集合操作

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

给定一个空的集合SS,可以对其进行三种操作。

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

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

输入格式

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

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

输出格式

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

输入输出样例

  • 输入#1

    7
    1 3
    1 2
    1 1
    2 1 5
    3 
    2 2 5
    3

    输出#1

    1
    0

说明/提示

提示

【样例1解释】

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

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

【数据范围】

  • 1n2×1051 \leq n \leq 2\times 10^5
  • 0x1090 \leq x \leq 10^9
  • 1cn1 \leq c \leq n
  • 当给出类型为 3 的查询时, SS 不为空。
  • 输入的所有值都是整数。
首页