Pagini recente » Cod sursa (job #142829) | Cod sursa (job #2753398) | Cod sursa (job #1454512) | Cod sursa (job #1930759) | Cod sursa (job #1138154)
#include<stdio.h>
#include<iostream>
using namespace std;
int v[16001];
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int nr,k,i,s,l1,l2,cate,mij,min,max1;
scanf("%d%d",&nr,&k);
max1=0;
for(i=1,s=0;i<=nr;i++){
scanf("%d",&v[i]);
s=s+v[i];
if(max1<v[i])
max1=v[i];
}
l1=max1;
l2=s;
while(l1<=l2){
s=0;
cate=1;
mij=(l1+l2)/2;
for(i=1;i<=nr;i++)
if(s+v[i]<=mij)
s=s+v[i];
else{
cate++;
s=v[i];
}
if(cate<=k){
l2=mij-1;
min=mij;
}
else
l1=mij+1;
}
cout<<min;
return 0;
}