车厢调度(train.cpp)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[1010],i,j,maxx=0,k,l=0;
int main()
{
cin>>n;
for(i=1;i<=n;i++)//输入n个元素
{
scanf("%d",&k);//顺序
if(k>maxx)//当前元素大于栈中最大的元素,则比此元素小的元素都入栈
{
for (j=maxx+1;j<=k;j++)
a[++l]=j;//入栈
maxx=k;//栈中最大元素变为刚进栈的元素
}
if(k<=maxx)//当前元素小于等于栈中最大元素,判断栈顶元素是否等于该元素
if (a[l]==k)//如果此时栈顶元素为k
l--;//出栈
else
{
printf("NO");
return 0;
}
}
printf("YES\n");
return 0;
}
原文:http://www.cnblogs.com/zxqxwnngztxx/p/6641056.html