Pagini recente » Cod sursa (job #1567824) | Cod sursa (job #293629) | Cod sursa (job #1888672) | Cod sursa (job #1769339) | Cod sursa (job #1503014)
#include <stdio.h>
int i,n,v[16001],c,k,dr,t,s,st,x;
int main()
{
FILE *f=fopen("transport.in","r");
FILE *g=fopen("transport.out","w");
fscanf(f,"%d%d",&n,&c);
for(i=1; i<=n; i++)
{
fscanf(f,"%d",&v[i]);
if(v[i]>st)
st=v[i];
dr+=v[i];
}
while(st<=dr)
{
k=(st+dr)/2;
t=0;
x=c;
for(i=1; i<=n; i++)
if(t+v[i]<=k)
t+=v[i];
else
{
t=0;
x--;
i--;
}
x--;
if(x<0)
st=k+1;
else
{
s=k;
dr=k-1;
}
}
fprintf(g,"%d",s);
return 0;
}