P1182 数列分段 Section II 60分求助
查看原帖
P1182 数列分段 Section II 60分求助
992565
daweli楼主2024/7/29 09:40
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100100];
bool check(int x){
	long long s=1,sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]+sum<=x&&sum+a[i]+a[i+1]>x){
			s++,sum=0;
		}	
		else sum+=a[i];
	}
	return s<=m;
}
int main(){
	cin>>n>>m;
	long long l=1,r=0,mid;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		r+=a[i];
	}
	while(l+1<r){
		mid=(l+r)/2;
		if(check(mid)) r=mid;
		else l=mid;
	}
	cout<<r;
	return 0;
}
2024/7/29 09:40
加载中...