U576637 【模板】van Emde Boas 树 / BZOJ3685 普通 van Emde Boas 树

题目背景

原 BZOJ3685。 将题面排版进行了适当优化。

题目描述

维护一个整数集合,支持以下操作: 1. 插入:若元素 $x$ 不存在,将其插入集合。 2. 删除:若元素 $x$ 存在,将其从集合中删除。 3. 查询最小值:输出集合中的最小值,若集合为空则输出 $-1$。 4. 查询最大值:输出集合中的最大值,若集合为空则输出 $-1$。 5. 查询前驱:输出小于 $x$ 的最大元素,若不存在则输出 $-1$。 6. 查询后继:输出大于 $x$ 的最小元素,若不存在则输出 $-1$。 7. 存在性检查:若元素 $x$ 存在,输出 $1$,否则输出 $-1$。

输入格式

第一行包含两个整数 $n$ 和 $m$,分别表示元素的取值范围和操作次数。 接下来 $m$ 行,每行描述一个操作,格式为: - `1 x`:插入 $x$。 - `2 x`:删除 $x$。 - `3`:查询最小值。 - `4`:查询最大值。 - `5 x`:查询前驱。 - `6 x`:查询后继。 - `7 x`:存在性检查。

输出格式

对于每个查询操作(操作 $3\sim 7$),输出对应的结果。

说明/提示

- $1\le n\le 10^6$。 - $1\le m\le 2\times 10^6$。 - $0\le x