Pagini recente » Cod sursa (job #1088789) | Cod sursa (job #475996) | Cod sursa (job #679683) | Cod sursa (job #98553) | Cod sursa (job #2265662)
#include <stdio.h>
int v[16001];
int main()
{
FILE *fin,*fout;
fin=fopen("transport.in","r");
fout=fopen("transport.out","w");
int n,k,i,j,st,dr,max,mij,s;
fscanf(fin,"%d%d",&n,&k);
max=0; s=0;
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
s=v[i]+s;
if(max<v[i])
max=v[i];
}
dr=s; st=max;
int x,w;
while(st<=dr){
s=1;
mij=(st+dr)/2;
x=0;
for(i=1;i<=n;i++){
if(mij>=x+v[i])
x=x+v[i];
else{
x=v[i];
s++;
}
}
if(s>k){
st=mij+1;
}
else{
w=mij;
dr=mij-1;
}
}
fprintf(fout,"%d",w);
return 0;
}