NKOJ——P1914——火车调度

原题

问题描述

某城市有一个火车站,如下图 所示,现有 n(n < =10000)节火车车厢,顺序编号为 1,2,3,…,n,按编号连续依次从 A 方向的铁轨驶入车站,从 B 方向铁轨驶出。一旦车厢进入车站就不能再回到 A 方向的铁轨上;在车站的门口有工人可以将车厢拖出车站,工人一次只能拖一节车厢,并且只能将车厢拖入B方向的铁轨。一旦车厢出了车站就不能再回到车站。车站一开始为空,最多能停放 10000 节车厢。
为了方便装货,调度员需要将车厢从新排列,问能否将车厢编号排列成A1,A2,…,An。也就是使车厢从B方向驶出的编号是A1,A2,…,An。如果能输出"yes",否则输出"no"。

火车调度

输入格式

第一行,一个整数n
第二行,n个用空格间隔的整数,表示出站时车厢编号要排列成的顺序A1,A2,…,An

输出格式

一行,一个单词"yes"或者"no"

样例

样例输入

样例输入1:
5
3 2 5 4 1
 
样例输入2:
5
3 1 5 4 2

样例输出

样例输出1:
yes
 
样例输出2:
no

题解

首先,肯定是用
然后while(n--)循环判断:

		cin>>e;
		for(;i<=e;i++)
			s.push(i);
		if(s.top()==e)
			s.pop();

如果栈的元素弹不出来了,卡了,那就no

		else if(s.top()>e)
		{
			cout<<"no";
			return 0;
		}
		else
			continue;

因为我有强迫症想要美观,加上一个else
24K版纯金滑稽
最后:

	cout<<"yes";
	return 0;

Accepted (100)
代码见链接
完结撒花!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值