100分求调
查看原帖
100分求调
1269423
huge_wave楼主2024/6/9 10:12
#include<bits/stdc++.h>
const int N=1e10+10000;
using namespace std;
int le,n,k,a[N],l,r;
int check(int mid)
{
	int cnt=0,weizhi=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]-weizhi>mid)
		{
			cnt+=(a[i]-weizhi-1)/mid;
		}
		weizhi=a[i];
	}
	return cnt;
}
int main()
{
	cin>>le>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	a[0]=0;a[++n]=le;
	l=1;r=le+1;
	int l=0,r=a[n]-a[1];
	while(l<r)
	{
		int mid=(l+r)/2;
		if(check(mid)<=k)r=mid;
		else l=mid+1;
	}
	cout<<l;
  return 0;
}

最后一个点错了。

2024/6/9 10:12
加载中...