http://acm.hdu.edu.cn/showproblem.php?pid=1257
#include <iostream> using namespace std; #define MAX 10000 int sys;//当前系统个数 int cur[MAX];//当前各个系统可以应付的高度 int h[MAX];//当前各个导弹的高度 int main() { int n,i,j; while (scanf("%d",&n)!=EOF) { sys=1; for(i=0;i<n;i++) { scanf("%d",&h[i]);//读取当前导弹高度 for (j=0;j<sys;j++) { if (cur[j] > h[i])//查询当前系统是否可以应付当前导弹 { cur[j] = h[i]; break; } } if (j==sys)//没有能打到当前导弹的系统,得增加一个 cur[sys++]=h[i]; } printf("%d\n",sys-1); } return 0; }