1462: 【基础】取扑克牌(1487)

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:28 解决:18

题目描述

有N(N<=1000)张扑克牌放成一堆,每次从上面取一张牌翻开,再从上面取一张牌放到这堆牌的下面。也就是从上面奇数次取到的牌翻开放成一排,偶数次取到的牌放在下面直到取完。
输入N张扑克牌的排满数字,输出翻开的情况。比如,N=4,牌面从上到下依次是1 2 3 4,那么翻开牌面的情况为1 3 2 4。

输入

第一行是一个整数N(N<=1000),第二行是N个整数,代表从上到下的牌面数。

输出

按照翻开牌面的顺序,输出翻开的结果,数字之间用一个空格隔开。

样例输入 复制

4
1 2 3 4

样例输出 复制

1 3 2 4

提示

#include<bits/stdc++.h>
using namespace std;
queue<int> q;
int n,t;
int main(){
    cin>>n;
    while(n--) {
    	cin>>t;
    	q.push(t);
	}
	int i=1;
	while(!q.empty()) {
		t=q.front();
		q.pop();
		if (i%2) cout<<t<<" ";
		else q.push(t);
		i++;
	}
	return 0;
}