一个线性筛的10分求助
查看原帖
一个线性筛的10分求助
797763
lishengkai楼主2023/9/30 21:21
#include<bits/stdc++.h>
using namespace std;
int n,c,a[100001],l,r,m,s,t,ans;
int main()
{
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;++i)
		cin>>a[i];
	sort(a+1,a+1+n);
	for(int i=1;i<=n;++i)
		l=min(a[i]-a[i-1],l);
	r=a[n]-a[1];
	while(l<=r)
	{
		m=(l+r)/2;
		s=1;t=1;
		for(int i=2;i<=n;++i)
			if(a[i]-a[t]>=m)
			{
				++s;
				t=i;
			}
		if(s>=n)
		{
			l=m+1;
			ans=m;
		}else
			r=m-1;
	}
    cout<<r;
    return 0;
}
2023/9/30 21:21
加载中...