求助大佬!为什么只输出1?
查看原帖
求助大佬!为什么只输出1?
1343286
Mincraft_Player楼主2024/8/28 22:24

代码:

#include<cstdio>
#include<algorithm>
using namespace std;
int n,c,a[100010];
bool check(int d){
	int last=a[1],ans=0;
	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=1e9,ans;
	while(l<=r){
		int mid=(l+r)/2;
		if(check(mid))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/28 22:24
加载中...