Pagini recente » Cod sursa (job #927964) | Cod sursa (job #39045) | Cod sursa (job #1878152) | Cod sursa (job #2382384) | Cod sursa (job #814949)
Cod sursa(job #814949)
#include<stdio.h>
int main()
{
int n,k,v[16001],i,s=0,max=0,c1,c2,c,cc,nrd,nr;
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+=v[i];
if(v[i]>max)
max=v[i];
}
c1=max;
c2=s;
c=(c1+c2)/2;
nr=c1;
while(c2-c1>1)
{
cc=c;
nrd=1;
for(i=1;i<=n;i++)
if(c>=v[i])
c-=v[i];
else
{
c=cc;
nrd++;
c-=v[i];
}
if(nrd>k)
{
c1=cc;
c=(c1+c2)/2;
}
else
{
nr=cc;
c2=cc;
c=(c1+c2)/2;
}
}
printf("%d",nr);
return 0;
}