Pagini recente » Cod sursa (job #1316848) | Cod sursa (job #664036) | Cod sursa (job #2100325) | Cod sursa (job #411550) | Cod sursa (job #489972)
Cod sursa(job #489972)
#include <stdio.h>
FILE *f,*g;
int n,k,min,max=0,s=0,c[16001];
int main(){
int i;
f=fopen("transport.in","r");
g=fopen("transport.out","w");
fscanf(f,"%d %d\n",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&c[i]);
if(c[i]>max) {max=c[i];}
s+=c[i];
}
min=max; max=s;
int m,cm,cb,nr;
while(min<=max)
{
m=(min+max)/2;
nr=0;
for(i=1;i<=n;)
{ s=0;
while(s+c[i]<=m&&i<=n)
{
s=s+c[i];
i++;
}
nr++;
}
if(nr<=k)
{
cb=m;
max=m-1;
}
else
min=m+1;
}
fprintf(g,"%d",cb);
return 0;
}