题目描述
小Z手上有一个长度为n的整数序列a,a2,...,an,但是他不太喜欢这个序列,因此他想通过一些操作将序列a变成自己想要的序列b。初始时序列b是空的接下来小Z将依次进行n次操作,其中第i次操作分为以下两步:
1.将a加到序列b的尾部;
2.翻转序列b(即b1,b2,...,b变成b;,b,..., bi)。
小Z想知道n次操作之后序列b会是什么样的,你能帮助他吗?[输入说明]
第一行包含一个正整数n;
第二行包含n个正整数,第i个正整数表示ai。
输出格式
共一行,包含n个数,表示n次操作后的序列b.
输出格式
共一行,包含n个数,表示n次操作后的序列b.
样例输入
4
1 2 3 4
样例输出
4 2 1 3
参考代码
#include <iostream>
#include <cstdio>
#include <stack>
#include <queue>
#define ll long long
using namespace std;
queue <ll> q;
void fun()
{
stack <ll> st;
while(!q.empty())
{
st.push(q.front());
q.pop();
}
while(!st.empty())
{
q.push(st.top());
st.pop();
}
}
int main()
{
freopen("sequence.in", "r", stdin);
freopen("sequence.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
ll x;
scanf("%lld", &x);
q.push(x);
fun();
}
while(!q.empty())
{
printf("%lld ", q.front());
q.pop();
}
return 0;
}