题目描述
deque<int> 是双端队列:头部和尾部都能进出。先看下面这个完整模板程序,它对双端队列依次做了 push_back、push_front、pop_front、pop_back 各一次,最后输出元素的个数:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
deque<int> q; // 定义一个空的双端队列
q.push_back(a); // 尾部进入:{a}
q.push_front(b); // 头部进入:{b,a}
q.push_back(c); // 尾部进入:{b,a,c}
q.push_front(d); // 头部进入:{d,b,a,c}
q.pop_front(); // 头部离开:{b,a,c}
q.pop_back(); // 尾部离开:{b,a}
cout << q.size() << endl; // 输出剩下的元素个数
return 0;
}
请把它改造成:同样读完四个数、做完这六步操作后,不输出元素个数,而是输出队头元素与队尾元素(一行两个,中间用一个空格隔开)。
输入格式
一行四个整数 、、、,按模板程序里的读入顺序给出。
输出格式
一行两个整数:做完六步操作后的队头元素与队尾元素,用空格分隔。
样例
输入:
30 10 40 20
输出:
10 30
做完六步后双端队列里剩下两个元素:队头是 10,队尾是 30。
数据范围
。提示:取队头元素用 q.front(),取队尾元素用 q.back()——它们和 push_front/push_back、pop_front/pop_back 正好凑成两对;size() 只报个数,不报内容。