求助
查看原帖
求助
982385
封禁用户楼主2024/1/20 11:18

代码第4个点错了,不知道为什么??

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000005];
bool ok(long long ma)
{
	long long l=0,d=1;
	for(int i=1;i<=n;i++)
	{
		if(l+a[i]<=ma) l+=a[i];
		else
		{
			l=a[i];
			d++;
		}
	}
	return d>m;
}
int main()
{
	cin>>n>>m;
	long long ll=0,ma=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		ll+=a[i];
		ma=max(ma,a[i]);
	}
	long long l=ma,r=ll;
	while(l+1<r)
	{
		long long mid=(l+r)/2;
		if(ok(mid)) l=mid;
		else r=mid;
	}
	cout<<r;
	return 0;
}
2024/1/20 11:18
加载中...