Pagini recente » Cod sursa (job #99238) | Cod sursa (job #1021146) | Cod sursa (job #121339) | Cod sursa (job #120432) | Cod sursa (job #152960)
Cod sursa(job #152960)
#include <stdio.h>
int t,nr,n,k,i,min,max,rez,u,mij,v[17000];
int main()
{
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]);
if(v[i]>min)
min=v[i];
max+=v[i];
}
rez=min;
u=max;
while(rez<=u)
{
mij=(rez+u)/2;
t=0; nr=0;
for(i=1;i<=n;i++)
{
t+=v[i];
if(t>mij)
{
t=0;
nr++;
i--;
}
}
if(t!=0)
{nr++; t=0; }
if(nr<=k)
u=mij-1;
else
rez=mij+1;
}
printf("%d\n",rez);
return 0;
}