Pagini recente » Cod sursa (job #1725390) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #3239918) | Cod sursa (job #1027682) | Cod sursa (job #817240)
Cod sursa(job #817240)
#include<stdio.h>
int v[16001];
int main()
{
int pp,n,k,i,s=0,max=0,l1,l2,nr,m,rez;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
s=s+v[i];
if(v[i]>max)
max=v[i];
}
l1=max;
l2=s;
pp=0;
while(l1<=l2)
{
m=(l1+l2)/2;
nr=1;
s=0;
for(i=1;i<=n;i++)
{
if(s+v[i]<=m)
s=s+v[i];
else
{
nr++;
s=v[i];
}
}
if(nr<=k)
{
l2=m-1;
rez=m;
}
if(nr>k)
l1=m+1;
}
if(rez>m)
printf("%d",rez);
else
printf("%d",m);
return 0;
}