Pagini recente » Cod sursa (job #2461687) | Cod sursa (job #1519544) | Cod sursa (job #1329966) | Cod sursa (job #2277007) | Cod sursa (job #521538)
Cod sursa(job #521538)
#include <cstdio>
#define file_in "transport.in"
#define file_out "transport.out"
int n,k,i,sum,suma,ls,ld,mij,v[16010],nr,sol;
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
sum=0;
scanf("%d %d", &n, &k);
for (i=1;i<=n;++i){
scanf("%d", &v[i]);
sum+=v[i];
}
ls=1;
ld=sum;
while(ls<=ld){
mij=(ls+ld)>>1;
nr=0;
suma=mij+1;
for (i=1;i<=n;++i){
if (v[i]>mij){
nr=16001;
break;
}
if (suma+v[i]<=mij){
//nr++;
suma+=v[i];
}
else{
nr++;
suma=v[i];
}
}
if (nr<=k){
sol=mij;
ld=mij-1;
}
else
ls=mij+1;
}
printf("%d", sol);
return 0;
}