Pagini recente » Cod sursa (job #1791847) | Cod sursa (job #1594149) | Cod sursa (job #749769) | Cod sursa (job #1733377) | Cod sursa (job #594214)
Cod sursa(job #594214)
#include <cstdio>
using namespace std;
int a[16005],n,k;
int verif(int cap){
int i=0,nr=0;
while (i < n){
int s=0;
while (i < n && s+a[i] <= cap)
s+=a[i++];
nr++;
}
return nr;
}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
int l=0;
long long r=0;
for (int i=0; i<n; ++i){
scanf("%d",a+i);
r+=a[i];
l=a[i]>l?a[i]:l;
}
while (l < r){
int m=l+(r-l)/2;
if (verif(m) <= k)
r=m;
else
l=m+1;
}
printf("%lld",r);
return 0;
}