Pagini recente » Cod sursa (job #2679874) | Cod sursa (job #1439648) | Cod sursa (job #1210596) | Cod sursa (job #1498376) | Cod sursa (job #129884)
Cod sursa(job #129884)
#include<stdio.h>
#define N 16010
int v[N];
int main(){
int c,n,i,k,s,a,b,u,m;
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 (m<v[i])
m=v[i];
s+=v[i];
}
a=1;
b=s;
while (b-a>1){
c=(a+b)/2+(a+b)%2;
s=0;
u=1;
for (i=1;i<=n;++i){
s=s+v[i];
if (s>c){
++u;
s=v[i];
}
}
if (u>k || c<m)
a=(a+b)/2+(a+b)%2;
else
b=(a+b)/2+(a+b)%2;
}
printf("%d",(a+b)/2+(a+b)%2);
return 0;
}