传统题 1000ms 256MiB

可改期的日程

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题意:

起初没有待办日程,每条日程由一个名称和一个非负整数时刻组成。当前待办日程的名称互不相同。

依次处理以下操作:

  • BOOK s t:如果当前存在名称为 ss 的待办日程,将它的时刻改为 tt;否则新建这条日程。
  • CANCEL s:取消当前名称为 ss 的待办日程。不存在时,不发生变化。
  • NEXT:取出当前时刻最小的待办日程,输出其时刻和名称,并将它从待办日程中删除。时刻相同时,取名称字典序最小的日程。没有待办日程时,输出 EMPTY。

已经取消或取出的名称之后可以重新使用。时刻只用来比较日程的先后,不代表程序当前时间,因此新建或改期后的时刻可以小于此前输出过的时刻。

名称仅由小写英文字母组成。字典序比较从左到右找到第一个不同字母,字母靠前者较小;一方是另一方的完整前缀时,较短者较小。

输入格式:

第一行一个整数 qq(1≤q≤2×1051 \le q \le 2\times10^5),表示操作次数。

接下来 qq 行,每行给出一条操作。

BOOK 操作给出字符串 ss 和整数 tt(1≤∣s∣≤121 \le |s| \le 12,0≤t≤1090 \le t \le 10^9)。CANCEL 操作给出字符串 ss(1≤∣s∣≤121 \le |s| \le 12)。

输出格式:

对每条 NEXT 操作输出一行。存在日程时,输出其时刻和名称,以一个空格分隔;否则输出 EMPTY。

没有 NEXT 操作时不输出内容。

样例:

样例输入:

12
BOOK beta 5
BOOK alpha 5
BOOK gamma 3
BOOK gamma 8
NEXT
CANCEL beta
NEXT
NEXT
BOOK alpha 2
CANCEL ghost
NEXT
NEXT

样例输出:

5 alpha
8 gamma
EMPTY
2 alpha
EMPTY

样例解释:

gamma 改期后,原来的时刻 33 不再有效。时刻同为 55 时,alpha 先被取出。最后重新创建的 alpha 是一条新的待办日程,其时刻可以为 22。

C++ Programming Practice Round 2

未参加
状态
已结束
规则
XCPC
题目
10
开始于
2026-10-18 0:00
结束于
2026-10-25 0:00
持续时间
168 小时
主持人
参赛人数
6