Unaccecpt 100 pts ? ? ?
查看原帖
Unaccecpt 100 pts ? ? ?
747883
xhz0311楼主2023/4/28 21:11
#include <bits/stdc++.h>
using namespace std;
int n,m,len,a[50010];
bool check(int dis)
{
	int k=0,move=0;
	for (int i=1; i<=n+1; i++)
	{
		if (a[i]-a[k]<dis)
		{
			move++;
		}
		else
		{
			k=i;
		}
		if (move>m)
		{
			return false;
		}
	}
	if (a[n+1]-a[k]<dis && k!=n+1)
	{
		return false;
	}
	return true;
}
int main()
{
	cin>>len>>n>>m;
	for (int i=1; i<=n; i++)
	{
		cin>>a[i];
	}
	a[n+1]=len;
	sort(a+1,a+n+2);
	int l=1,r=len,ans;
	while (l<=r)
	{
		int mid=(l+r)/2;
		if (check(mid))
		{
			ans=mid;
			l=mid+1;
		}
		else
		{
			r=mid-1;
		}
	}
	cout<<ans;
	return 0;
}

WA on subtask 1 #11

2023/4/28 21:11
加载中...