求助喵
查看原帖
求助喵
1182672
python18楼主2024/5/20 17:13
#include<bits/stdc++.h>
using namespace std;
long long a[1000050];
long long l,n,k;
bool check(long long s)
{
	long long ans=0,cnt=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]-ans<=s)
		{
			ans=a[i];
			cnt++;
		}
		else
		{
			ans+=s;
			//cnt--;
		}
	}
	return cnt>=k;
}
int main()
{
	scanf("%lld%lld%lld",&l,&n,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	long long left=1,right=l;
	while(left<right)
	{
		long long mid=(left+right)/2;
		if(!check(mid)) left=mid+1;
		else right=mid;
	}
	if(check(left)) printf("%lld\n",left);
	return 0;
} 















样例错了

2024/5/20 17:13
加载中...