Pagini recente » Cod sursa (job #2423106) | Cod sursa (job #2590602) | Cod sursa (job #235653) | Cod sursa (job #2603017) | Cod sursa (job #1808629)
#include <cstdio>
using namespace std;
int v[16010];
int main()
{
int n,k,i,st,dr,x,m,s,nr,max1;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d", &n, &k);
st=1;
dr=x=max1=0;
for (i=1;i<=n;i++) {
scanf("%d", &v[i]);
dr+=v[i];
if (v[i]>=max1)
max1=v[i];
}
st=max1;
while (st<=dr) {
m=(st+dr)/2;
s=0;
nr=1;
for (i=1;i<=n;i++)
if (m>=s+v[i])
s+=v[i];
else
s=v[i],nr++;
if (nr<=k)
x=m,dr=m-1;
else
st=m+1;
}
printf("%d ", x);
return 0;
}