Pagini recente » Cod sursa (job #633481) | Cod sursa (job #1812470) | Cod sursa (job #2364052) | Cod sursa (job #488182) | Cod sursa (job #1028382)
#include <stdio.h>
#include<stdlib.h>
#define N 16010
int sal[N],n,k,p,i,sum,u,m,maxim;
int ok(int c)
{
int i,nr=1,cc=0;
for(i=1;i<=n;i++)
{
if(cc+sal[i]<=c)
cc+=sal[i];
else
{
nr++;
cc=sal[i];
}
}
if(nr>k)
return 0;
else
return 1;
}
int main()
{
FILE *f,*g;
f=fopen("transport.in","r");
g=fopen("transport.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&sal[i]);
sum+=sal[i];
if(sal[i]>maxim)
maxim=sal[i];
}
p=maxim;
u=sum;
while(p<=u)
{
m=(p+u)/2;
if(ok(m))
u=m-1;
else
p=m+1;
}
fprintf(g,"%d",p);
return 0;
}