Pagini recente » Cod sursa (job #1054183) | Cod sursa (job #2062045) | Cod sursa (job #107380) | Cod sursa (job #2883148) | Cod sursa (job #482351)
Cod sursa(job #482351)
#include <stdio.h>
int n,k,a[16001];
bool jo(int p){
int i=0,db=1,temp=0;
while((i<=n)&&(db<=k)){
i++;
if(a[i]>p){return false;}
if(temp+a[i]<=p){temp+=a[i];}else{db++;temp=a[i];}
}
if((i==n+1)&&(db<=k)){return true;}else{return false;}
}
void bs(int lo,int hi){
int mid;
while(lo<hi){
mid=lo+(hi-lo)/2;
if(jo(mid)){hi=mid;}else{lo=mid+1;}
}
printf("%d",lo);
}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int i;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++){scanf("%d",&a[i]);}
bs(1,n);
return 0;}