70
查看原帖
70
700986
IkunFriendsChat楼主2023/4/27 22:53
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,l,k,a[114514],cf[114514];
bool check(ll mid)
{
	ll y=k;
	for(ll i=1;i<=n;i++)
	{
		ll tmp=cf[i];
		while(tmp>=mid)
		y--,tmp-=mid;
	}
	if(y>=0)return 1;
	else return 0;
}
ll bs()
{
	ll le=0,ri=l,mid=(le+ri)/2,ans=-1ll;
	while(le<ri)
	{
		mid=(le+ri)/2;
		if(check(mid))/*ans=mid,*/ri=mid;
		else le=mid+1;
	}
	return le;
}
int main()
{
	scanf("%lld%lld%lld",&l,&n,&k);
	for(ll i=1;i<=n;i++)
	{
		scanf("%lld",a+i);
		cf[i]=a[i]-a[i-1];
	}
	printf("%lld",bs());
}
2023/4/27 22:53
加载中...