7 条题解

  • 0
    @ 2025-3-18 16:44:02

    easy

    #include<bits/stdc++.h>
    using namespace std;
    int n,k,a[100005],max_a=-1;
    
    int check(int kk){
    	int ret=0;
        for(int i=0; i<n; i++)ret+=a[i]/kk;
    	return ret;
    }
    
    int main(){
    	cin>>n>>k;
    	for(int i=0; i<n; i++){
    		cin>>a[i];
    		max_a=max(max_a,a[i]);
    	}
    	
    	int l=1,r=max_a;
    	int ans=0;
    	while(l<=r){
    		int mid=(l+r)/2;
    		if(check(mid)>=k){
    			ans=mid;
    			l=mid+1;
    		}else{
    			r=mid-1;
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    
    
    
    
    

    信息

    ID
    1277
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    144
    已通过
    50
    上传者