Pagini recente » Cod sursa (job #2685004) | Cod sursa (job #1259518) | Cod sursa (job #2811874) | Cod sursa (job #1686773) | Cod sursa (job #1882384)
#include <bits/stdc++.h>
using namespace std;
int c,k,p,n,maxx,a[16005],s,m,lo,mid,hi;
int main(){
ifstream cin("transport.in");
ofstream cout("transport.out");
cin>>n>>m;
for (int i=1;i<=n;i++){
cin>>a[i];
if (a[i]>maxx) maxx=a[i];
}
lo=maxx;
hi=210000000;
while (lo<=hi){
mid=lo+(hi-lo)/2;
p=mid;
s=0;
k=1;
for (int i=1;i<=n;i++)
if (s+a[i]<=p) {
s=s+a[i];
}
else {
k++;
s=a[i];
}
if (k<=m) hi=mid-1;
else lo=mid+1;
}
cout<<lo;
return 0;
}