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