P6301 集合
题目描述
你需要**在线**维护一个自然数的排序集 $S$ 并支持以下操作:
1. 给一个数 $x$,若 $x$ 不在集合 $S$ 中则将 $x$ 添加到集合 $S$ 中;
2. 给一个数 $x$,若 $x$ 已在集合 $S$ 中则将 $x$ 从集合 $S$ 中删除。
为了证明你维护了 $S$,你需要在操作过程中回答以下询问:
3. 求集合 $S$ 中最小元素的值,若 $S=\varnothing$ 则返回 `-1`;
4. 求集合 $S$ 中最大元素的值,若 $S=\varnothing$ 则返回 `-1`;
5. 求集合 $S$ 中元素的数量;
6. 给一个数 $x$,判断 $x$ 是否在集合内,若在则返回 `1` ,若不在则返回 `0` ;
7. 给一个数 $x$,求集合 $T=S\cap[0^-,x)$ 中最大元素的值,若 $T=\varnothing$ 则返回 `-1`;
8. 给一个数 $x$,求集合 $T=S\cap[x,n)$ 中最小元素的值,若 $T=\varnothing$ 则返回 `-1`。
为了证明你**在线地**维护了 $S$,对于所有在第一次询问后的操作 $1,2$ 与询问 $6,7,8$,实际操作和询问的参数 $x$ 为输入中给出的操作和询问的参数 $x'$ 与上一次询问的返回结果 $\text{last}$ 之和。即 $x=x'+\text{last}$。
保证 $0\le x
输入格式
无
输出格式
无
说明/提示
### 样例解释
实际上执行的操作与回答的询问如下:
```plain
1 0
1 1
1 3
1 3
3 -> 0
7 0 -> -1
7 1 -> 0
8 3 -> 3
4 -> 3
2 3
4 -> 1
6 3 -> 0
5 -> 2
```
因此输出为 $0+(-1)+0+3+3+1+0+2=8$。
### 数据范围
| 测试点编号 | $n=$ | $m=$ | 分值 |
|:--------------:|:------------:|:-----------:|:-------:|
| $1$ | $2^{20}$ | $2^{14}$ | $5$ |
| $2$ | $2^{25}$ | $2^{17}$ | $5$ |
| $3$ | $2^{30}$ | $2^{20}$ | $10$ |
| $4$ | $2^{30}$ | $2^{22}$ | $15$ |
| $5$ | $2^{30}$ | $2^{22}$ | $15$ |
| $6$ | $2^{30}$ | $2^{23}$ | $25$ |
| $7$ | $2^{30}$ | $2^{23}$ | $25$ |
对于 $100\%$ 的数据,满足 $2^{20}\le n\le2^{30},2^{14}\le m\le 2^{23},0\le x