求助
查看原帖
求助
225301
大珂学家楼主2021/10/2 15:35
#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long n,si,c,l,r,mid,max=0;
	cin>>n>>c;
	long long x[n+1];
	x[0]=1;
	for(int i=1;i<=n;i++)
	{
		cin>>x[i];
	}
	sort(x,x+n+1);
	r=x[n+1]+1;
	l=0;
	mid=(r+l)/2;
	while(r-l>1)
	{
		long long a=1,s=c-1;
		for(int i=2;i<=n&&s>0;i++)
		{
			if(x[i]-x[a]<=mid)
			{
				a=i;
				s--;
			}
			si=s;
		}
		if(si==0)
		{
			r=mid;
		}
		else
		{
			l=mid;
			if(mid>max)
			{
				max=mid;
			}
		}
			mid=(l+r)/2;
	}
	cout<<max;
}
2021/10/2 15:35
加载中...