#4992. 小绿的双端队列
小绿的双端队列
小绿的双端队列
- 时间限制:1.0 s
- 内存限制:512.0 MB
题目描述
小绿学会了一个叫做 deque(双端队列)的容器。deque 可以在一头(队头 front)和一尾(队尾 back)同时进行插入和删除操作。
现在给你一个初始为空的 deque,请你按照顺序执行 n 条指令,并按要求输出结果。每条指令是下面的一种:
push_back x:在队尾加入一个整数 x。push_front x:在队头加入一个整数 x。pop_back:删除队尾的整数。若队列为空,输出error。pop_front:删除队头的整数。若队列为空,输出error。query_back:输出队尾的整数。若队列为空,输出error。query_front:输出队头的整数。若队列为空,输出error。
注意:执行 pop / query 指令时,如果队列为空,只输出 error,并继续执行下一条指令。
输入格式
第一行一个整数 n,表示指令条数。
接下来 n 行,每行一条指令,格式如题目描述所示。
输出格式
按顺序输出每条需要输出的指令的结果,一行一个。若某条指令不需要输出(如 push),则不输出任何内容。
输入样例
7
push_back 3
push_front 1
query_front
query_back
pop_front
pop_back
query_front
输出样例
1
3
error
提示
- 使用
#include <deque>引入双端队列。 - 常用成员:
push_back、push_front、pop_back、pop_front、front、back、empty。 - 注意空队列判断,使用
empty()检查队列是否为空。 - 数据范围:,。