‹ 上一题 下一题 ›

g5-08300. 两端进出 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLdeque

题目描述

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() 只报个数,不报内容。

输入
输出

            
答案