36分
  • 板块灌水区
  • 楼主ONT_
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/12/4 22:42
  • 上次更新2023/11/3 22:53:53
查看原帖
36分
380235
ONT_楼主2021/12/4 22:42

有n列火车按照1,2,3...n的顺序排列,现所有的火车需要掉头,所以需要火车先驶入一个调度站,再开出来。

由于只有一根铁轨,所以要么最前面的一辆火车进去调度站,要么调度栈内最上面一辆火车开出调度栈。

现给定一个出调度站的,顺序,判断是否合理


#include<bits/stdc++.h>
using namespace std;
int a[10005];
stack <int> s;
int main()
{
	int n,o=0,t,l,h,g;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	s.push(a[1]);
	for(int k=2;k<=n;k++)
	{
		if(a[k]<a[k-1])
		{
			s.push(a[k]);
		}
	}
	for(int i=1;i<=n;i++)
	{
		t=s.top();
		s.pop();
		l=s.top();
		g=s.size();
		if(t>l&&g>1)
		{
			h=1;
		}
		else
		{
			cout<<"NO";
			return 0;
		}
	}
	cout<<"YES";
	return 0;
}
2021/12/4 22:42
加载中...