Pagini recente » Cod sursa (job #2583253) | Cod sursa (job #2648332) | Cod sursa (job #2066449) | Cod sursa (job #1937070) | Cod sursa (job #491598)
Cod sursa(job #491598)
#include <stdio.h>
int n,k,i,v[16010];
long min,max,s=0,nr,suma,si;
int main()
{
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(v[i]>s){
s=v[i];
}
max+=v[i];
}
min=s;
while(min<max){
nr=(min+max)/2;
suma=0;
si=0;
for(i=1;i<=n;i++){
if(suma<nr){
suma+=v[i];
}else{
si++;
//printf("%ld\n",suma);
suma=v[i-1];
}
if(i==n){
si++;
}
}
if(si<k){
max=nr-1;
}else{
min=nr+1;
}
//printf("%d\n\n",nr);
}
printf("%ld",nr+1);
return 0;
}