10分求调!!!(有关注)
查看原帖
10分求调!!!(有关注)
1396592
tlc301401楼主2024/11/12 17:25

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn=100005;
long long n,c,nums[maxn];
bool check(int mid){
	int p=nums[0],cnt=1,ok=0;
	for(int i=1;i<n;i++) {
		if(nums[i]>=p+mid){
			cnt++;
			if(cnt>=c)  {
				ok=1;
				break;
			}
			
		}
    }
	return ok;
}
int main(){
	long long s=0,ans=0;
	cin>>n>>c;
	for(int i=0;i<n;i++) cin>>nums[i];
	sort(nums,nums+n);
	long long  l=0,r=nums[n-1];
	while(l<=r){
		long long  mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}
        else r=mid-1;
	}
	cout<<ans<<endl;
	return 0;
} 

求加14行

2024/11/12 17:25
加载中...