Pagini recente » Cod sursa (job #1430627) | Cod sursa (job #2428452) | Cod sursa (job #33361) | Cod sursa (job #1945091) | 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;
}