ybt 1322 导弹拦截问题
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
int main() {
int i,x,a[1010]={0},b[1010]={0};
i=0;
while(scanf("%d",&x)!=EOF){//回车后输入ctrl+z 表示读完输入的文件
a[i]=x;
i++;
}
int count=0,n=i,j;
for(i=0;i<n;i++){
int flag=0,id=-1;
for(j=0;j<=count;j++)
if(a[i]<=b[j]){//相当于只要找到一个比a[i]大的数 表记并跳出循环 只有该if在第二重遍历,不要看错
flag=1;
id=j;
break;
}
if(flag==1){//用记录下来的地址来存数
b[id]=a[i];
}
else b[++count]=a[i];假如b[j]没有大于a[i]的数就另开一组系统
}
printf("%d",count);
return 0;
}
浙公网安备 33010602011771号