Pagini recente » Cod sursa (job #2277224) | Cod sursa (job #2744066) | Cod sursa (job #1729799) | Cod sursa (job #190937) | Cod sursa (job #2160945)
#include <stdio.h>
int main()
{
int v[16005],copt,n,k,i,j,cmin,dr,st,kcrt,s,mij;
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",&v[i]);
cmin=v[1];
for(i=2;i<=n;i++)
if(v[i]>cmin)
cmin=v[i];
st=cmin;
dr=16000;
copt=16001;
while(st<=dr)
{
mij=(st+dr)/2;
kcrt=1;
s=v[1];
for(i=2;i<=n;i++)
{
if(s+v[i]>mij){
kcrt++;
s=v[i];
}
else
s+=v[i];
}
//printf("%d\n",kcrt);
if(kcrt>k)
st=mij+1;
else{
if(mij<copt)
copt=mij;
dr=mij-1;
}
}
fprintf(g,"%d",copt);
}