1 #include<stdio.h> 2 int main() 3 { 4 int n,a[30005],ans,i,j,k,m; 5 while(scanf("%d",&n)!=EOF) 6 { 7 ans=1; 8 for(i=0;i<n;i++) 9 a[i]=0; 10 //预处理,开始时必定现有一套系统,所以ans=1,清空a[]上一轮的数据 11 scanf("%d",&a[0]); 12 //第一套系统的拦截高度当然是第一个导弹的高度啦 13 for(i=1;i<n;i++) 14 { 15 //第二枚及之后的导弹在这里读入处理 16 scanf("%d",&k); 17 m=0;//这是一个标记变量,用来记录现在的这个导弹能否被现有系统拦截 18 for(j=0;j<ans;j++) 19 { 20 if(k<a[j])//导弹被现有系统拦截成功 21 { 22 a[j]=k;//系统高度下降 23 m=1;//标记显示为被拦截 24 break;//结束这个循环,因为下面的导弹系统不需要被用到 25 26 } 27 } 28 if(m==0)//导弹无法被现有系统拦截 29 { 30 a[ans]=k; 31 ans++; 32 //添加一套新的系统; 33 } 34 } 35 printf("%d\n",ans); 36 } 37 }