Pagini recente » Cod sursa (job #4597) | Cod sursa (job #1495071) | Cod sursa (job #1495067)
#include <stdio.h>
#include <stdlib.h>
int v[16001];
int main()
{
FILE *fin, *fout;
int n,k,st,dr,m,incercari,i,suma;
fin=fopen("transport.in","r");
fout=fopen("transport.out","w");
fscanf(fin,"%d%d",&n,&k);
suma=0;
for(i=0;i<n;i++){
fscanf(fin,"%d",&v[i]);
suma+=v[i];
}
st=1;
dr=suma;
while(st+1<dr){
m=(st+dr)/2;
i=0;
incercari=1;
suma=0;
while(incercari<=k && i<n){
if(suma+v[i]<=m)
suma+=v[i];
else{
incercari++;
suma=v[i];
}
i++;
}
if(incercari<=k)
dr=m;
else
st=m;
}
fprintf(fout,"%d",dr);
fclose(fin);
fclose(fout);
return 0;
}