#B3616. 【模板】队列
【模板】队列
B3616 【模板】队列
难度: 普及−
标签: 数据结构、队列、模拟、模板题
来源: 洛谷 B3616
题目背景
本题围绕“【模板】队列”所描述的场景展开。请维护一个队列,并处理以下操作: - 1 x:把正整数 加入队尾; - 2:弹出队首。
下面的题面采用非逐字重述方式整理,但保留原题中的全部判定条件、边界含义、输入输出要求与特殊约定。
题目描述
请维护一个队列,并处理以下操作:
1 x:把正整数 加入队尾;2:弹出队首。若队列为空,则不修改队列,并输出ERR_CANNOT_POP;3:查询队首。若队列为空,则输出ERR_CANNOT_QUERY;4:查询并输出队列当前的元素个数。
队列遵循“先进先出”的规则。
完整规则与任务要求
处理本题时,必须同时满足下列全部要求,不能只实现其中一部分:
- 请维护一个队列,并处理以下操作:。
- 把正整数 加入队尾;。
- 若队列为空,则不修改队列,并输出
ERR_CANNOT_POP;。 - 若队列为空,则输出
ERR_CANNOT_QUERY;。 - 查询并输出队列当前的元素个数。
- 队列遵循“先进先出”的规则。
- 队列遵循先进先出。
- 弹出空队列和查询空队列的错误字符串不同。
程序应完整读取“输入格式”中规定的所有数据,并严格按照“输出格式”给出结果。题目中的区间端点、编号起点、排序优先级、同分处理、空结构处理、取模方式和特殊字符串,均以本题面明确写出的规则为准。
所有算法还必须覆盖“数据范围”中的最小规模、最大规模及边界情况,不能只针对样例或小数据。
输入格式
第一行输入整数 ,表示操作次数。
接下来 行,每行是一条操作,格式为 1 x、2、3 或 4。
输出格式
对每个需要给出结果的操作,按照题目要求输出一行。操作 1 以及成功执行的操作 2 不输出内容。
输入输出样例
13
1 2
3
4
1 233
3
2
3
2
4
3
2
1 144
3
2
1
2
233
0
ERR_CANNOT_QUERY
ERR_CANNOT_POP
144
样例说明
依次加入 和 后,队首始终是最早加入的元素。弹出两次后队列为空,此时查询、继续弹出会得到对应错误信息;最后加入 ,队首变为 。
数据范围
- ;
- 所有被加入队列的元素均为 内的正整数。
边界与子任务说明
- 测试数据可能覆盖题面允许的最小值、最大值、重复值、空结果、无解或极端结构等边界情形。
- 若原题未额外列出分档子任务,则所有测试点统一遵守上述完整数据范围;若题面已经列出比例或分档条件,则这些条件均应视为题面的一部分。
- 不能根据公开样例推断未写出的额外限制。
本题面依据洛谷 B3616 的公开题目信息重新整理,为内容完整的非逐字重述版。
粤公网安备44195502000195号