#2WA 20分
查看原帖
#2WA 20分
966272
zhs_TLE楼主2024/9/29 23:27
#include<iostream>
using namespace std;
long long int n,m,ans,a[100005],l=1,r;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	    cin>>a[i],r+=a[i],l=max(l,a[i]);
	while(l<=r){
		long long int mid=(l+r)/2;
		long long int ans=0,sum=0;
		for(int i=1;i<=n;i++){
    	    if(i==n){
    	        ans++;
    	        break;
		    }
    	    sum+=a[i];
    	    if(sum==mid){
    		    ans++;
    		    sum=0;
		    }
		    else if(sum>mid){
			    sum=a[i];
			    ans++;
	    	}
	    }
	    if(ans<=m)
	    	r=mid-1;
	    else l=mid+1;
	}
	cout<<l;
	return 0;
}
2024/9/29 23:27
加载中...