Problem4495--华丽的队列

4495: 华丽的队列

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

每年都有很多新同学来到我们学校。最近,我们学校的领导为了考验新同学的能力,想出了一个方法来测试:
领导们定义了一个队列,队列中的元素是顺序存放的,领导们还定义了队列的几种操作:
a) insert x,向队列末尾添加一个元素 x;
b) delete,删除队列前的第一个元素;
c) MinElement,删除队列中的最小元素。
提示:
1. insert的元素 $x(0 \leq x \leq 10^9)$;
2. 队列中的元素是唯一的,不会出现重复元素;
3. 对于每组测试数据,操作的数量 $N(1 \leq N \leq 5 \times 10^4)$。

Input

第一行一个正整数 $N$,代表操作的数量:
接下来从第二行到 $N+1$ 行:
每行开始一个字符串 s,有三种字符串:insert,delete 或者 MinElement。
对于 insert 接下来有个整数 x,代表插入队列的元素;
对于 delete,删除队首的元素;不保证队列不为空,如果队列为空,则不操作。
对于 MinElement,返回队列中的最小元素,并且把这个元素从队列中删除。不保证队列不为空,如果队列为空,则不操作。

Output

对于每个操作,输出不同的答案:
对于 insert,输出队列中元素的总数 $n$;
对于 delete,删除队首的元素,并且输出这个队首元素 $x$;如果队列为空,则不操作。
对于 MinElement,输出队列中的最小元素 $y$,并且把这个元素从队列中删除。 如果队列为空,则不操作。

Sample 1 Input

6
insert 1
insert 2
insert 3
insert 4
delete
MinElement

Sample 1 Output

1
2
3
4
1
2

Source/Category

STL 3.1.vector