Pagini recente » Cod sursa (job #379440) | Cod sursa (job #129534) | Cod sursa (job #3136363) | Cod sursa (job #2226544) | Cod sursa (job #178493)
Cod sursa(job #178493)
#include <stdio.h>
long n,i,a[16005],st,dr,mid,k,t;
long nrtrans(long x){
long r=0,t=1;
for (i=1;i<=n;i++)
if (a[i]+r<=x)r+=a[i];
else {t++;r=a[i];}
return t;
}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
st=1;
scanf("%ld %ld",&n,&k);
for (i=1;i<=n;++i){
scanf("%ld",&a[i]);
if (a[i]>st)st=a[i];
dr+=a[i];
}
while (st<dr){
mid=(st+dr)/2;
t=nrtrans(mid);
if (t<=k)
dr=mid;
else st=mid+1;
}
printf("%ld\n",st);
return 0;
}