Pagini recente » Cod sursa (job #2215931) | Cod sursa (job #2536307) | Cod sursa (job #1102234) | Cod sursa (job #1841044) | Cod sursa (job #2161274)
#include <stdio.h>
int main()
{
int v[16005],copt,n,k,i,cmin,dr,st,kcrt,mij,s;
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*n;
copt=20000;
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];
}
if(kcrt>k)
st=mij+1;
else{
if(mij<=copt)
copt=mij;
dr=mij-1;
}
}
fprintf(g,"%d",copt);
fclose(f);
fclose(g);
}