20分求助!!!
只过了第四样例,但离谱的错了,求各位大佬帮orz
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[100005];
bool check(int x){
int cur=0;
int cnt=0;
for(int i=1;i<=n;i++){
cur+=a[i];
if(cur>=x){
cnt++;
cur=0;
}
}
if(cnt>=m){
return true;
}
return false;
}
int main(){
int l,r;
l=r=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
while(l<=r){
int mid=(l+r)/2;
if(check(mid)){
l=mid+1;
}
else{
r=mid-1;
}
}
cout<<l;
return 0;
}