2 条题解

  • 0
    @ 2023-8-3 16:37:38
    #include<bits/stdc++.h>
    
    using namespace std;
    int n,m;
    int a[100005];
    int main(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
    	int l=1,r=a[n]-a[1];
    	while(l<r){
    		int mid=(l+r+1)/2,cnt=1,k=a[1];
    		for(int i=2;i<=n;i++){
    			if(a[i]-k>=mid)cnt++,k=a[i];
    		}
    		if(cnt>=m)l=mid;
    		else r=mid-1;
    	}
    	cout<<l;
    	return 0;
    }
    

    信息

    ID
    916
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    21
    已通过
    20
    上传者