40分求助,#2#3#5没过喵
查看原帖
40分求助,#2#3#5没过喵
1182672
python18楼主2024/5/19 12:01
#include<bits/stdc++.h>
using namespace std;
const int w=114514;
long long a[w];
long long n,m,l,r;
long long check(long long ans)
{
	long long cnt=0,s=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]+cnt<=ans)
		{
			cnt+=a[i];
		}
		else
		{
			cnt=a[i];
			s++;
		}
	}
	return cnt>=m;
}
int main()
{
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
		l=max(l,a[i]);
		r+=a[i];
	}
	while(l<r)
	{
		long long mid=(l+r)/2;
		if(!check(mid))
		{
			l=mid+1;
		}
		else
		{
			r=mid;
		}
	}
	if(check(l))
	{
		printf("%lld\n",l);
	}
	return 0;
}













2024/5/19 12:01
加载中...