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;
}

 

posted @ 2022-04-24 16:32  半喜  阅读(22)  评论(0)    收藏  举报