0分求调!!!(有关注)
查看原帖
0分求调!!!(有关注)
1343286
Mincraft_Player楼主2024/8/29 10:35

代码:

#include<cstdio>
#include<algorithm>
using namespace std;
int n,c,a[100010];
bool check(int d){
	int last=a[1],ans=1;
	for(int i=2;i<=n;i++)
		if(a[i]-last>=d)last=a[i],ans++;
	return ans>=c;
}
int Find(){
	int l=1,r=a[n]-a[1],ans;
	while(l<=r){
		int mid=l+r>>1;
		if(check(mid))ans=max(ans,mid),l=mid+1;
		else r=mid-1;
	}
	return ans;
}
int main(){
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	sort(a+1,a+n+1);printf("%d",Find());return 0;
}
2024/8/29 10:35
加载中...