有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;
}