Pagini recente » Cod sursa (job #1546967) | Cod sursa (job #2873042) | Cod sursa (job #155886) | Cod sursa (job #2690959) | Cod sursa (job #594212)
Cod sursa(job #594212)
#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;
}
int rez=0;
int m=l+(r-l)/2;
while (l < r){
if (verif(m) <= k)
r=m;
else
l=m+1;
rez=r;
m=l+(r-l)/2;
}
printf("%d",rez);
return 0;
}