记录编号 257264 评测结果 AAAAAAAAAA
题目名称 [USACO Mar07] 月度花费 最终得分 100
用户昵称 Gravatar洛克索耶夫 是否通过 通过
代码语言 C++ 运行时间 0.065 s
提交时间 2016-05-02 11:17:45 内存使用 0.40 MiB
显示代码纯文本
#include<bits/stdc++.h>

int Read()
{
	int a=0;
	char ch=getchar();
	while(ch<'0'||ch>'9')	ch=getchar();
	while(ch>='0'&&ch<='9'){
		a=a*10+ch-'0';
		ch=getchar();
	}
	return a;
}

int main()
{
	freopen("expense.in","r",stdin);
	freopen("expense.out","w",stdout); 
	
	int n=Read(),m=Read(),r=0,l=0,money[100100]={0},ans=0x7fffffff;
	for(int i=1;i<=n;i++){
		money[i]=Read();
		if(money[i]>l)	l=money[i];
		r+=money[i];
	}
		
	while(l<=r){
		int mid=(l+r)/2,cnt=0,sum=0;
		ans=0;
		for(int i=1;i<=n;i++){
			sum+=money[i];
			if(sum+money[i+1]>mid){
				cnt++;
				if(ans<sum)	ans=sum;
				sum=0;
			}
		}
		if(cnt<m)	r=mid-1;
		else l=mid+1;
	}
	
	printf("%d",ans);	
	return 0;
}