记录编号 549646 评测结果 AAAAAAAAAA
题目名称 划分数列 最终得分 100
用户昵称 Gravatar锝镆氪锂铽 是否通过 通过
代码语言 C++ 运行时间 0.062 s
提交时间 2020-02-19 22:01:09 内存使用 10.04 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
const int maxN=1e6+10;

int m,n,a[maxN],s[maxN],b[maxN],sum,l,flag;
int seq(){
	freopen("seqa.in","r",stdin);
	freopen("seqa.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		sum+=a[i];
		l=a[i]>=l?a[i]:l;
		s[i]=s[i-1]+a[i];
	}
	int mid,cnt=1;
	while(l<sum){		
		mid=(l+sum)/2;
		for(int i=1;i<=n;i++){
			cnt+=a[i];
			if(cnt+a[i+1]>mid){
				flag++;
				cnt=0;
			}
		}
		if(flag<m){
			sum=mid;
			flag=0;
			cnt=0;
		}
		else{
			l=mid+1;
			flag=0;
			cnt=0;
		}
	}
	printf("%d",l);
	return 0;
}

int lol=seq();
int main(void){;}