70pts求助
查看原帖
70pts求助
1341011
mmnBilibili楼主2024/11/30 09:02
#include<bits/stdc++.h>
#define int long long
#define map lis 

using namespace std;

int n,c;
int map[100010];
int ans;
bool check(int x){
	int now=1,cnt=1;
	for(int i=2;i<=n;i++){
		if(map[i]-map[now]>=x) now=i,cnt++;
	}
	if(cnt>=c) return true;
	return false;
}
int find(int l,int r){
	while(l<r){
		int mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	return ans;
}

signed main(){
	cin>>n>>c;
	for(int i=1;i<=n;i++) cin>>map[i];
	sort(map+1,map+n+1);
	int l=1,r=100005;
	cout<<find(l,r);
	return 0;
}
2024/11/30 09:02
加载中...