为什么把第九行的=去掉就A了?【禁水,水者拉黑】
查看原帖
为什么把第九行的=去掉就A了?【禁水,水者拉黑】
372653
西方不buy菌楼主2020/11/27 23:22
#include<bits/stdc++.h>
using namespace std;
int n,a[100001],k,ans=0;
bool check(int m)
{
	int rgt=a[0]+m,sum=1;
	for(int i=1;i<n;i++)
	{
		if(rgt>a[i])
		{
			continue;
		}
		else
		{
			++sum;
			rgt=a[i]+m;
		}
	}
	return sum>=k;
}
int main()
{
	cin>>n>>k;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	sort(a,a+n);
	int l=a[0],r=a[n-1];
	while(l<=r)
	{
		int mid=(l+r)>>1;
		if(check(mid))
		{
			l=mid+1;
			ans=mid;
		}
		else
		{
			r=mid-1;
		}
	}
	cout<<ans<<endl;
}
2020/11/27 23:22
加载中...