请你实现一个队列(queue),支持如下操作:
push(x)
:向队列中加入一个数 x。pop()
:将队首弹出。如果此时队列为空,则不进行弹出操作,并输出ERR_CANNOT_POP
。query()
:输出队首元素。如果此时队列为空,则输出ERR_CANNOT_QUERY
。size()
:输出此时队列内元素个数。
第一行,一个整数 n
,表示操作的次数。
接下来 n
行,每行表示一个操作。格式如下:
- 1 x,表示将元素 x 加入队列。
- 2,表示将队首弹出队列。
- 3,表示查询队首。
- 4,表示查询队列内元素个数。
对于 100% 的测试数据,满足
输出若干行,对于每个操作,按「题目描述」输出结果。
每条输出之间应当用空行隔开。
输入样例 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
请你实现一个栈(stack),支持如下操作:
push(x)
:向栈中加入一个数 x。pop()
:将栈顶弹出。如果此时栈为空则不进行弹出操作,输出Empty
。query()
:输出栈顶元素,如果此时栈为空则输出Anguei!
。size()
:输出此时栈内元素个数。
每组数据第一行是一个整数,表示操作的次数 n。
接下来 n 行,每行表示一个操作,格式如下:
- 1 x,表示将元素 x 加入栈。
- 2,表示将栈顶弹出栈。
- 3,表示查询栈顶。
- 4,表示查询栈内元素个数。
对于 100% 的测试数据,满足
对于每组数据,按照「题目描述」中的要求依次输出。每次输出占一行。
输入样例 1
5
1 2
3
4
2
3
输出样例 1
2
1
Anguei!
输入样例 2
3
2
3
4
输出样例 2
Empty
Anguei!
0
给定一个数列,初始为空,请支持下面三种操作:
- 1 x:给定一个整数 x,请将 x 加入到数列中。
- 2:输出数列中最小的数。
- 3:删除数列中最小的数(如果有多个数最小,只删除 1 个)。
- 4:输出数列的大小
第一行是一个整数,表示操作的次数 n。 接下来 n 行,每行表示一次操作。每行首先有一个整数 op 表示操作类型。
- 1 x:表示要将 x 加入数列。
- 2,表示要求输出数列中的最小数。若堆为空,则输出
ERR_CANNOT_QUERY
。 - 3,表示删除数列中的最小数。如果有多个数最小,只删除 1 个。若堆为空,则输出
ERR_CANNOT_POP
。 - 4,表示要输出数列的大小。
对于 100% 的测试数据,满足
输出若干行,对于每个操作,按「题目描述」输出结果。
每条输出之间应当用空行隔开。
输入样例 1
5
1 2
1 5
2
3
2
输出样例 1
2
5
输入样例 2
8
2
2
4
3
1 28079
2
1 23826
2
输出样例 2
ERR_CANNOT_QUERY
ERR_CANNOT_QUERY
0
ERR_CANNOT_POP
28079
23826