Pagini recente » Cod sursa (job #600592) | Cod sursa (job #526578) | Cod sursa (job #2423172) | Cod sursa (job #3031542) | Cod sursa (job #448611)
Cod sursa(job #448611)
#include<stdio.h>
long x[16001];
long sp[16001];
int main()
{
long n,k,i,m,min=1000000000,nk,s=0,vs,st,dr;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
for (i=1;i<=n;i++)
{
scanf("%ld",&x[i]);
sp[i]=sp[i-1]+x[i];
}
st=1;
dr=sp[n];
while (st<=dr)
{
m=(st+dr)/2;
nk=0;
s=0;
vs=0;
for (i=1;i<=n;i++)
{
if (sp[i]-vs>m)
{
nk++;
vs=sp[i-1];
}
}
if (nk<k)
{
if (m<min)
min=m;
dr=m-1;
}
else
st=m+1;
}
printf("%ld\n",min);
return 0;
}