帮忙看看怎么改,subtask1没过
查看原帖
帮忙看看怎么改,subtask1没过
1492261
cht3362733140楼主2024/11/23 11:46
#include <bits/stdc++.h>
using namespace std;
long long n,a[50005],m,length,l,r,now,before;
int main()
{
	cin>>length>>n>>m;
	for(int i=0; i<n; i++)
	{
		cin>>now;
		a[i]=now-before;
		before=now;
	}
	a[n]=length-now;
	l=1;
	if(n==m)
	{
		cout<<length;
		return 0;
	}
	r=length/(n-m);
	while(l<=r)
	{
		long long mid=l+(r-l)/2,t,k=0;
		for(int i=0; i<=n; i++)
		{
			t=a[i];
			while(t<mid&&i<n)
			{
				i++;
				t+=a[i];
				k++;
			}
		}
		if(k<=m) l=mid+1;
		else r=mid-1;
	}
	cout<<r;
	return 0;
}
2024/11/23 11:46
加载中...