Pagini recente » Cod sursa (job #915579) | Cod sursa (job #2376801) | Cod sursa (job #1969469) | Cod sursa (job #2243905) | Cod sursa (job #815571)
Cod sursa(job #815571)
#include<stdio.h>
int main ()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,l1,l2=0,m,i,max=0,nr,s=0,w,v[16001];
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{scanf("%d",&v[i]);
if(v[i]>max)
max=v[i];
l2+=v[i];
}
l1=max-1;
l2++;
while(l1<=l2)
{nr=(l1+l2)/2;
s=0;
w=0;
for(i=1;i<=n-1;i++)
{s=s+v[i];
if(s+v[i+1]>nr)
{w++;
s=0;
}
}
m=w+1;
if(m<=k)
l2=nr-1;
else
l1=nr+1;
}
printf("%d",nr);
return 0;
}