这哪里错了啊?
查看原帖
这哪里错了啊?
504461
昼夜●★繁星楼主2021/11/18 18:49
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int b[10000010],a,n,c,ans=0; 
bool check(int x)
{
	int last=b[1];
	for(int i=2;i<=n;i++)
	{
		if(b[i]-last<x) ans++;
		else last=b[i];
		if(ans>a) return false;
	} 
	return true;
}
int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++)
	{
		cin>>b[i];
	}
	sort(b+1,b+n+1);
	a=n-c;
	int l=1,r=b[n]-b[1];
	while(l+1<r)
	{
		int mid=(l+r)>>1;
		if(check(mid)) l=mid;
		else r=mid;
	}
	if(check(r)) cout<<r;
	else cout<<l;
	return 0;
} 

2021/11/18 18:49
加载中...