Problem6024--学习系列——队列 II—— 模拟双向队列

6024: 学习系列——队列 II—— 模拟双向队列

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

Description

虽然 STL 提供了 deque 这个双向队列,数组在 OI 中有天然的优势,我们还是需要学会使用数组模拟双向队列。
使用数组来实现一个双向队列,队列初始为空,支持四种操作:
  1. push_front x – 向队首插入一个数 $x$;
  2. push_back x – 向队尾插入一个数 $x$;
  3. pop_front – 从队头弹出一个数;
  4. pop_back – 从队尾弹出一个数;
  5. size – 获得队列内数据个数;
  6. front – 查询队头元素;
  7. back – 查询队尾元素;
现在要对队列进行 $M$ 个操作,其中的每个操作 $5$,操作$6$ 和操作 $7$ 都要输出相应的结果。

Input

第一行包含整数 $M$,表示操作次数。
接下来 $M$ 行,每行包含一个操作命令,操作命令为题目描述中的一种。

Output

输出每个操作 $5$,操作$6$ 和操作 $7$ 相应的结果。

Constraints

$1≤M≤100000$,
$1≤x≤10^9$,
所有操作保证合法。

Sample 1 Input

34
push_front 6
size
front
back
push_back 12
size
front
back
pop_front
size
front
back
pop_front
size
push_back 3
size
front
back
push_back 4
size
front
back
push_front 6
size
front
back
push_front 35
size
front
back
pop_back
size
front
back

Sample 1 Output

1
6
6
2
6
12
1
12
12
0
1
3
3
2
3
4
3
6
4
4
35
4
3
35
3

Source/Category

数据结构 2.4.队列