Pagini recente » Cod sursa (job #2495583) | Cod sursa (job #1414874) | Cod sursa (job #328856) | Cod sursa (job #2921318) | Cod sursa (job #1581880)
#include <stdio.h>
#include <stdlib.h>
int v[16100];
int n,k,max,x;
int main(){
int i;
int voln,t,nr;
int dr,st,s;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=0;i<n;i++){
scanf("%d",&v[i]);
if(v[i]>max){
max=v[i];
}
}
dr=n*max;
st=max;
while(st<=dr){
nr=1;
voln=(st+dr)/2;
for(i=1;i<=n;i++){
s+=v[i];
if(s>voln){
nr++;
s=v[i];
}
}
if(s<=voln){
if(nr==k){
x=voln;
}
if(nr>k){
st=voln+1;
}else{
dr=voln-1;
}
s=0;
}
}
printf("%d",st);
return 0;
}