A125368.零件仓库

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

题目背景

小码君负责管理学校机器人社团的零件仓库。

仓库里存放着不同规格的轴承,每个轴承都有一个编号,编号越大表示规格越大。为了方便管理,仓库中不会同时存在两个编号完全相同的轴承。

每天都会有入库和出库操作。现在请你帮小码君维护这个仓库。

题目描述

一共有 mm 次操作,每次操作有两种类型:

  • 1 x:表示将一个编号为 xx 的轴承放入仓库。

    • 如果仓库中已经有编号为 xx 的轴承,则输出 Already Exist
    • 否则,将这个轴承放入仓库。
  • 2 x:表示需要取出一个编号尽量接近 xx 的轴承。

    • 如果仓库中有编号正好为 xx 的轴承,就取出它。
    • 如果没有编号正好为 xx 的轴承,就取出编号与 xx 差值最小的轴承。
    • 如果有两个轴承都同样接近 xx,取出编号较小的那个。
    • 每次出库后,被取出的轴承会从仓库中删除。
    • 如果仓库为空,则输出 Empty

输入格式

第一行一个整数 mm,表示操作次数。

接下来 mm 行,每行两个整数,表示一次操作:

op x

其中:

  • op=1op = 1 表示入库;
  • op=2op = 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,5010,30,50 的轴承。

第一次 2 30,正好有编号为 3030 的轴承,所以取出 3030

此时仓库中剩下 10,5010,50

第二次 2 3010105050 距离 3030 都是 2020,所以取编号较小的 1010

第三次 2 30,仓库中只剩 5050,所以取出 5050

第四次 2 30,仓库为空,所以输出 Empty

数据范围

对于 40%40\% 的数据,m1000m \le 1000

对于 70%70\% 的数据,m104m \le 10^4

对于 100%100\% 的数据,满足:

  • 1m1051 \le m \le 10^5
  • 1x1091 \le x \le 10^9
  • op1,2op \in {1,2}

输入解题思路,AI测评打分。不知道怎么写?

首页