80分求助第四个点WA
查看原帖
80分求助第四个点WA
895690
gghack_Nythix楼主2022/12/12 13:28
#include <bits/stdc++.h>
using namespace std;
unsigned long long a[100000005];
inline bool check(long long x,long long n,long long m)
{
	long long now = 0,ans = 0;
	for(int i = 1;i <= n;i ++)
	{
		if(now + a[i] > x)
		{
			ans++;
			now = a[i];				
		}
		else
		{
			now += a[i];
		}
	}
	return ans + 1 <= m;
}
int main()
{
	unsigned long long n,m,l = 1,r = 9999999999,mid = (l + r) / 2,ans = 0;
	cin >> n >> m;
	for(int i = 1;i <= n;i ++)
	{
		cin >> a[i];
	}
	while(l <= r)
	{
		mid = (l + r) / 2;
		if(check(mid,n,m))
		{
			r = mid - 1;
			ans = mid;
		}
		else
		{
			l = mid + 1;		
		}
	}
	cout << ans;
	return 0;
}
2022/12/12 13:28
加载中...