#B3616. 【模板】队列(Queue Template)

0

【模板】队列(Queue Template)

【模板】队列(Queue Template)

题目描述

请你实现一个队列(queue),支持如下操作:

  • push(x):向队列中加入一个数 xx。
  • pop():将队首弹出。如果此时队列为空,则不进行弹出操作,并输出 ERR_CANNOT_POP。
  • query():输出队首元素。如果此时队列为空,则输出 ERR_CANNOT_QUERY。
  • size():输出此时队列内元素个数。

输入格式

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

接下来 nn 行,每行表示一个操作。格式如下:

  • 1 x,表示将元素 x 加入队列。
  • 2,表示将队首弹出队列。
  • 3,表示查询队首。
  • 4,表示查询队列内元素个数。

输出格式

输出若干行,对于每个需要输出的操作,按「题目描述」依次输出结果,每次输出占一行。

样例输入 #1

13
1 2
3
4
1 233
3
2
3
2
4
3
2
1 144
3

样例输出 #1

2
1
2
233
0
ERR_CANNOT_QUERY
ERR_CANNOT_POP
144

数据范围

样例解释

首先插入 2,队首为 2、队列内元素个数为 1。
插入 233,此时队首为 2。
弹出队首,此时队首为 233。
弹出队首,此时队首为空。
再次尝试弹出队首,由于队列已经为空,此时无法弹出。
插入 144,此时队首为 144。

数据规模与约定

对于 100%100\% 的测试数据,满足 n≤104n\leq 10^4,且被插入队列的所有元素值是 [1,106][1, 10^6] 以内的正整数。

知识点与难度

本题涉及的知识点从属于 GESP 6级,难度(CF Rating):850。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例及最小边界测试
1 20 3~8 1≤n≤5001 \le n \le 500,1≤x≤10001 \le x \le 1000
2 15 9~11 Hack 数据:空队列连续 pop/query、清空后重新入队
3 30 12~20 1≤n≤1041 \le n \le 10^4,1≤x≤1061 \le x \le 10^6
4 25 21~25 1≤n≤1041 \le n \le 10^4 随机混合回归测试

出处:原题链接