1 条题解

  • 0
    @ 2022-7-11 10:37:10
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[10000],hwq[10000],s=0,k;
    int main(){
    	while(cin>>k) a[++n]=k; 因为题目没告诉我们要输几个数,所以我们这样输
    	hwq[++s]=a[1];//第一发导弹肯定要新建一个系统才能接住
    	for(int i=2;i<=n;i++){
    		sort(hwq+1,hwq+s+1);//每次把系统的导弹高度排序
    		if(a[i]<=hwq[s]){//如果说这颗导弹是比最高的拦截导弹低那么肯定可以拦截
    			int j=1;
    			while(hwq[j]<a[i]) j++;//从最低的拦截导弹开始找一颗高度可以的导弹
    			hwq[j]=a[i];//拦截后拦截导弹的高度就是被拦截导弹的高度
    		}
    		else hwq[++s]=a[i];//如果这颗导弹不能拦截就新建一个系统把他拦了
    	}
    	cout<<s;//输出系统个数
    }
    
    • 1

    信息

    ID
    95
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    135
    已通过
    35
    上传者