SP12579 SID - Search Insert Delete
题目描述
你有一批数据需要处理(均为正的 32 位整数)。对这些数据,你可以进行三种操作:查找、插入和删除。存储数据时,要记录数据的排名,即它被最初插入的位置。所有成功的操作必须返回数据的排名;若操作失败,应返回 `NONE`。
你的目标是尽快执行完所有操作。
输入格式
输入的第一行由两个用空格分隔的整数 $N$ 和 $M$ 组成。其中,$N$ 表示初始数据的数量(0 ≤ N < 1000000),$M$ 表示操作的数量(0 ≤ M < 1000000)。
第二行包含 $N$ 个用空格分隔的数据。所有数据均为正整数,并且每个数据均不超过 32 位。
接下来的 $M$ 行表示针对数据的操作。每行由一个符号和一个数字组成,它们之间用空格分隔。
三个符号分别是:**S**(查找)、**I**(插入)和 **D**(删除)。
- `S number`: 尝试在数据中查找该数字,输出其首次插入时的排名;若不存在,输出 `NONE`。
- `I number`: 将该数字插入数据中,输出其插入后的排名。注意,数字可以重复插入。
- `D number`: 删除数据中最早插入的该数字,并输出其排名;若数据中没有该数字,输出 `NONE`。
输出格式
对于每个操作,输出结果请参考上面对于每种操作的详细描述。
**本翻译由 AI 自动生成**