比赛 2019级快乐小组模拟赛19.9.19 评测结果 ATAAAAATTT
题目名称 月度花费 最终得分 60
用户昵称 cool 运行时间 4.187 s
代码语言 C++ 内存使用 14.42 MiB
提交时间 2019-09-19 16:01:50
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,m,mon[100005],l,r,ans;
bool judge(long long lin)/*判断这个答案是否合法*/
{
	long long cnt=0,now=0;/*cnt为算了多少个月份,NOW表示当前这个月多少钱*/
	for(int i=1;i<=n;++i)
		{
			now+=mon[i];
			if(now>lin)
			{
				cnt++;
				now=mon[i];
			} 
		}		
	if(now)cnt++;
	return cnt<=m;
}
int main()
{
	freopen("expense.in","r",stdin);
	freopen("expense.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	{
		cin>>mon[i];
		l=max(l,mon[i]);
		r+=mon[i];
	}
	while(l<=r)
	{
		long long mid=(l+r)/2;
		if(judge(mid))
			{
				ans=mid;
				r=r-1;
			}
		else
			l+=1;
	}
	cout<<ans;
	return 0;
}