A125368.零件仓库
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
题目背景
小码君负责管理学校机器人社团的零件仓库。
仓库里存放着不同规格的轴承,每个轴承都有一个编号,编号越大表示规格越大。为了方便管理,仓库中不会同时存在两个编号完全相同的轴承。
每天都会有入库和出库操作。现在请你帮小码君维护这个仓库。
题目描述
一共有 m 次操作,每次操作有两种类型:
-
1 x:表示将一个编号为 x 的轴承放入仓库。- 如果仓库中已经有编号为 x 的轴承,则输出
Already Exist。 - 否则,将这个轴承放入仓库。
- 如果仓库中已经有编号为 x 的轴承,则输出
-
2 x:表示需要取出一个编号尽量接近 x 的轴承。- 如果仓库中有编号正好为 x 的轴承,就取出它。
- 如果没有编号正好为 x 的轴承,就取出编号与 x 差值最小的轴承。
- 如果有两个轴承都同样接近 x,取出编号较小的那个。
- 每次出库后,被取出的轴承会从仓库中删除。
- 如果仓库为空,则输出
Empty。
输入格式
第一行一个整数 m,表示操作次数。
接下来 m 行,每行两个整数,表示一次操作:
op x
其中:
- op=1 表示入库;
- op=2 表示出库。
输出格式
对于每次需要输出的操作,输出一行。
- 重复入库时,输出
Already Exist; - 出库成功时,输出被取出的轴承编号;
- 仓库为空时,输出
Empty。
输入输出样例
输入#1
7 1 10 1 50 1 30 2 30 2 30 2 30 2 30
输出#1
3 1 5 Empty
说明/提示
样例解释
前三次操作后,仓库中有编号为 10,30,50 的轴承。
第一次 2 30,正好有编号为 30 的轴承,所以取出 30。
此时仓库中剩下 10,50。
第二次 2 30,10 和 50 距离 30 都是 20,所以取编号较小的 10。
第三次 2 30,仓库中只剩 50,所以取出 50。
第四次 2 30,仓库为空,所以输出 Empty。
数据范围
对于 40% 的数据,m≤1000。
对于 70% 的数据,m≤104。
对于 100% 的数据,满足:
- 1≤m≤105;
- 1≤x≤109;
- op∈1,2。
输入解题思路,AI测评打分。不知道怎么写?