wa 3个
查看原帖
wa 3个
1497142
james20111107楼主2025/1/14 09:53
#include<bits/stdc++.h>
using namespace std;
long long a[1000005],n,r=0,A,l=0;
bool check(long long x){
	long long cnt=1,sum=0;
	for(long long i=1;i<=n;i++){
		if(sum+a[i]<=x){
			sum+=a[i];
			continue;
		}
		cnt++;
		sum=a[i];
	}
	return cnt<=A;
}
long long zhao(long long r){
	long long mid=0;
	while(l+1<r){
		mid=(r+l)>>1;
		if(check(mid)){
			r=mid;
		}else{
			l=mid;
		}
	}
	return l;
}

int main(){
	cin>>n>>A;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		r+=a[i];
		l=max(l,a[i]);
	}
	sort(a+1,a+n+1);
	cout<<zhao(r);
	return 0;
}
2025/1/14 09:53
加载中...