代码:
{
}
#include<stdio.h>
#include<string.h>
int a[30001],b[30001];
int main()
{
int n,i,j,s;
while(~scanf("%d",&n))
{
for(i=0; i<n; i++)
scanf("%d",&a[i]);
memset(b,0,sizeof(b));
b[1]=a[0];//将拦截第一颗导弹的任务交给s=1;
for(i=1,s=1; i<n; i++)
for(j=1;;j++)
{
if(b[j]>=a[i])//如果此颗导弹的高度低于d[s]中的一个就将此导弹的值赋予b[s];
{
b[j]=a[i];
break;
}
if(j>n)//反之,如果d[s]中的导弹都拦截不了,就再开一个d[s+1]即可;
{
b[++s]=a[i];
break;
}
}
printf("%d\n",s);
}
}
}