top1编程
← 返回题目
题解

【基础】最小的空旷指数

1 条题解

  • 0
    @ 2026-7-28 22:10:03
    #include<bits/stdc++.h>
    using namespace std;
    int h,n,k,a[100005],ans;
    int check(int mid){
    	int k2=k;
    	for(int i=2;i<=n;i++){
    		k2-=((a[i]-a[i-1]-1)/mid);
    	}
    	return k2>=0;
    }
    int main(){
    	cin>>h>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
    	int l=0,r=a[n];
    	while(l<=r){
    		int mid=(l+r)>>1;
    		if(check(mid)==true){
    			r=mid-1;
    		}else{
    			l=mid+1;
    		}
    	}
    	cout<<l;
    	return 0;
    }
    
    • 1