Pagini recente » Cod sursa (job #2985416) | Cod sursa (job #1164679) | Cod sursa (job #2325439) | Cod sursa (job #2682551) | Cod sursa (job #234799)
Cod sursa(job #234799)
# include <stdio.h>
int N,K,V[16001];
int greedy(int x)
{
int i,j=1,s=0;
for (i=1;i<=N;++i)
if (s+V[i]<=x) s+=V[i];
else {j++; s=V[i];}
return j;
}
int BS(int i, int j)
{
int m,sol=0;
while(i<=j){
m=i+(j-i)/2;
if (greedy(m)<=K) sol=m, j=m-1;
else i=m+1;
}
return sol;
}
int main(){
int i,max,S=0;
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d %d",&N,&K);
for (i=1;i<=N;++i){
scanf("%d",&V[i]);
if (max<V[i]) max=V[i];
S+=V[i];
}
printf("%d",BS(max,S));
return 0;
}