5317 - 限时消息队列

题目描述

一个容量为 5 的循环队列用于存储限时消息,每条消息有编号(1≤n≤1000)和有效期(1≤t≤4,单位:秒)。支持以下操作:

  • M n t:添加消息 n,有效期 t 秒。若队列满,覆盖最早的消息(输出 "Replace n -> m",m 为被覆盖的消息);否则输出 "Add n"。
  • T:时间流逝 1 秒,所有消息有效期减 1。若消息有效期变为 0,自动移除(输出 "Expire n")。
  • G:取出队首消息(出队)。若队空,输出 "No messages";否则输出 "Get n"。
  • L:输出当前队列所有消息(格式:"n (t) m (t) ...",按队列顺序,t 为剩余有效期)。 输入以Q结束,输出所有操作结果。
输入

每行一个操作:

  • M n t(添加消息)
  • T(时间流逝)
  • G(取队首)
  • L(输出队列)
  • Q(结束)
输出
  • M n t成功添加:Add n;覆盖:Replace n -> m
  • T:对每个过期消息输出 "Expire n"(按过期顺序)
  • G成功:Get n;失败:No messages
  • L:按格式输出消息(如:"1 (2) 3 (1)")
样例

输入

M 1 2  
M 2 3  
M 3 1  
T  
L  
M 4 2  
T  
L  
G  
T  
L  
Q  

输出

Add 1  
Add 2  
Add 3  
Expire 3  
1(1) 2(2) 3(0) 
Add 4  
Expire 1
2(1) 3(-1) 4(1) 
Get 2  
Expire 4  
3(-2) 4(0)
说明

数据范围

消息编号 n:1≤n≤1000

有效期 t:1≤t≤4

操作次数:1≤次数≤30

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 2
通过人数 2
金币数量 0 枚
难度 未标记


上一题 下一题