Pagini recente » Cod sursa (job #3271527) | Cod sursa (job #2761310) | Cod sursa (job #1215910) | Cod sursa (job #1320075) | Cod sursa (job #414688)
Cod sursa(job #414688)
#include<stdio.h>
FILE*f=fopen("transport.in","r");
FILE*g=fopen("transport.out","w");
int n,k,p,u,v[16001],i,cc,tr,c;
int main () {
fscanf(f,"%d %d",&n,&k);
u=0;
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
u+=v[i];
if(p<v[i])
p=v[i];
}
while(p<=u){
c=p+(u-p)/2;
tr=0;
cc=0;
for(i=1;i<=n;i++){
if(v[i]+cc<=c)
cc+=v[i];
else{
tr++;
cc=v[i];
}
}
if(cc!=0)
tr++;
if(tr>k){
p=c+1;
}
else
u=c-1;
}
fprintf(g,"%d",p);
fclose(f);
fclose(g);
return 0;
}