luogu#P6301. 集合
集合
题目描述
你需要在线维护一个自然数的排序集 并支持以下操作:
- 给一个数 ,若 不在集合 中则将 添加到集合 中;
- 给一个数 ,若 已在集合 中则将 从集合 中删除。
为了证明你维护了 ,你需要在操作过程中回答以下询问:
- 求集合 中最小元素的值,若 则返回
-1
; - 求集合 中最大元素的值,若 则返回
-1
; - 求集合 中元素的数量;
- 给一个数 ,判断 是否在集合内,若在则返回
1
,若不在则返回0
; - 给一个数 ,求集合 中最大元素的值,若 则返回
-1
; - 给一个数 ,求集合 中最小元素的值,若 则返回
-1
。
为了证明你在线地维护了 ,对于所有在第一次询问后的操作 与询问 ,实际操作和询问的参数 为输入中给出的操作和询问的参数 与上一次询问的返回结果 之和。即 。
保证 。
初始时 。
输入格式
输入共 行,其中 的意义见下。
第一行两个正整数 ,其中 表示操作与询问的参数 的上界, 表示操作与询问个数的总和。
接下来 行,每行一个或两个自然数,表示一次操作或者询问。保证每一行为如下八种形式之一:
1 x'
,表示执行操作 ;2 x'
,表示执行操作 ;3
,表示回答询问 ;4
,表示回答询问 ;5
,表示回答询问 ;6 x'
,表示回答询问 ;7 x'
,表示回答询问 ;8 x'
,表示回答询问 。
输出格式
为避免输出过多,你只需要输出一行一个整数,表示所有询问的返回结果之和。
4 13
1 0
1 1
1 3
1 3
3
7 0
7 2
8 3
4
2 0
4
6 2
5
8
提示
样例解释
实际上执行的操作与回答的询问如下:
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
因此输出为 。
数据范围
测试点编号 | 分值 | ||
---|---|---|---|
对于 的数据,满足 $2^{20}\le n\le2^{30},2^{14}\le m\le 2^{23},0\le x<n$。
提示
本题输入量较大,建议使用较快的读入方式。
表示略小于 的一个值, 可以保证第 个操作的 恒有意义。