比赛 20170919普及组 评测结果 AAAAAAAAAA
题目名称 划分数列 最终得分 100
用户昵称 zhoutb 运行时间 0.070 s
代码语言 C++ 内存使用 1.05 MiB
提交时间 2017-09-19 20:10:50
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 100010
using namespace std;
 
long long sum[maxn];
int main(){
	freopen("seqa.in","r",stdin);
	freopen("seqa.out","w",stdout);
	long long n,k,x,l,r,mid,temp,cnt,ll,rr,midd,maxx=0,summ=0;
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%lld",&sum[i]);
		maxx=max(maxx,sum[i]);
		summ+=sum[i];
	}
	l=maxx,r=summ;
	while(l<r){
		mid=(l+r)/2;
		temp=0;
		cnt=1;
		for(int i=1;i<=n;i++){
			if(temp+sum[i]>mid){
				cnt++;
				temp=sum[i];
			}
			else
				temp+=sum[i];
		}
		if(cnt>k)
			l=mid+1;
		else
			r=mid;
	}
	printf("%lld",l);
	return 0;
}