#P1161. 最大的差

最大的差

题目描述

有一个集合,最初是个空集。接下来,会有 QQ 条指令,每条指令是以下三种类型中的一种:

  • 插入指令以 + 开头,后接一个整数 xx,表示将 xx 插入集合,这个集合是个多重集,可以存放多个相同的元素。
  • 删除指令以 - 开头,后接一个整数 xx,表示将 xx 从集合中删除,如果集合中有多个重复的 xx,只删除其中一个,如果集合中没有 xx,则这条指令没有任何作用。
  • 询问指令以 ? 开头。请求出集合中的最大值减最小值的差,并将这个差输出。如果当时集合是个空集,则输出 0。

输入格式

  • 单个整数:表示 QQ
  • 接下来有 QQ 条指令,格式如上。

输出格式

  • 若干行:对每个查询指令,输出查询的结果。
6
+ 1
+ 3
+ 2
?
- 3
?
2
1

数据范围

  • 30%30\% 的数据,1≤Q≤1001\leq Q\leq 100
  • 60%60\% 的数据,1≤Q≤100001\leq Q\leq 10000,0≤Xi<100000\leq X_i<10000
  • 100%100\% 的数据,1≤Q≤300,0001\leq Q\leq 300,000
  • 0≤Xi<1,000,000,0000\leq X_i< 1,000,000,000