Pagini recente » Cod sursa (job #1957818) | Cod sursa (job #2482307) | Cod sursa (job #533723) | Cod sursa (job #1971881) | Cod sursa (job #1829000)
#include <cstdio>
int a[16001];
int main (){
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int l1=0,l2=0,n,i,m,s,nrs,k,x;
scanf ("%d %d",&n,&k);
for (i=1;i<=n;i++){
scanf ("%d",&a[i]);
if (l1<a[i])
l1=a[i];
l2+=a[i];
}
while (l1<=l2){
m=(l1+l2)/2;
s=nrs=0;
for (i=1;i<=n;i++){
s+=a[i];
if (s>m){
nrs++;
s=a[i];
}
}
nrs++;
if (nrs<=k){
x=m;
l2=m-1;
}
else
l1=m+1;
}
printf ("%d",x);
return 0;
}