#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int a[100];
int i;
for(i=0; i<n; i++)
scanf("%d",&a[i]);
int j,k,t,Min;
int flag=1;
for(i=0; i<n; i++)
{
Min=a[i];
for(j=i+1; j<n; j++)
{
if(a[j]<Min)
{
Min=a[j];
break;//找到一个比a[i]小的数,就马上结束;
}
}
for(k=j+1; k<n; k++)
{
if(a[k]<a[i])//如果又找到一个比a[i]小的数
{
if(a[k]<Min)//如果它比之前找到的min小,说明顺序正确;
Min=a[k];
else//如果比min大,说明不正确,例如24153
{
flag=0;
break;
}
}
}
}
for(i=0; i<n; i++)//考虑特殊情况
for(j=i+1; j<n; j++)
if(a[i]==a[j]||a[i]>n||a[i]<=0)
flag=0;
if(flag)
printf("yes\n");
else
printf("no\n");
return 0;
}//栈的写不出来了,five
合法的出栈序列
最新推荐文章于 2024-06-30 18:15:45 发布