K11477 小科的成人礼

98 篇文章 1 订阅
11 篇文章 0 订阅

这一题要用双向队列deque,用queue已经不可以咯~

题目描述

小科的成人礼上,邀请了n个人来参加。这n个人陆陆续续到来,现场有一张大长椅,每当有一个人来小科就会让他从长椅的左边或右边进去坐下。由于来的人太多,小科已经忙坏了,以至于当科丁博士问他:“现在长椅上坐着的人从左往右依次是谁?”时,他也无法立即回答出来。

现在请你编一个程序来帮他回答这个问题。

输入格式

第一行是一个整数n。1<=n<=20000。

接下来n行,每行有一个数字a和字符串Name,当a=0表示这个人是从左边进入长椅的,当a=1时表示这个人是从右边进入长椅的。Name是长度为1-5的字符串,表示第i个到来的人的名字。

输出格式

共n行,依次表示长椅上从左到右的人的名字。 

输入输出样例

输入样例1:
10 0 LZZ 0 HSY 0 TSW 1 LHS 1 WKA 0 LWJ 1 HT 0 ZZB 1 DYL 0 ZJX 
输出样例1:
ZJX
ZZB
LWJ
TSW
HSY
LZZ
LHS
WKA
HT
DYL 

【耗时限制】1000ms 【内存限制】256MB

//
//Created by Carlgood.
//
//Note:This program is written in version DEV-C++ 5.11.
# include<iostream>
# include<cmath>
# include<string>
# include<cstring>
# include<cstdio>
# include<algorithm>
# include<sstream>
# include<vector>
# include<queue>
# include<deque>
# define This_program_is_written_by_Carlgood_Programming_Studio 9876543210
using namespace std;
deque<string> a;
int main()
{
	int n;
	cin>>n;
	string s;
	int b;
	for(int i=1;i<=n;i++)
	{
		cin>>b>>s;
		if(b==0)
		{
			a.push_front(s);
		}
		else
		{
			a.push_back(s);
		}
	}
	int len=a.size();
	for(int i=0;i<len;i++)
	{
		cout<<a.front()<<endl;
		a.pop_front();
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值