Pagini recente » Cod sursa (job #676466) | Cod sursa (job #3227109) | Cod sursa (job #2149893) | Cod sursa (job #1616938) | Cod sursa (job #1165593)
#include<cstdio>
#define NMAX 256000000
using namespace std;
inline int max(int a,int b)
{
if (a>b) return a;
else return b;
}
int n,m,s,nr,i,k;
int a[16005];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
int st=0;
for (i=1;i<=n;++i)
{
scanf("%d",&a[i]);
st=max(st,a[i]);
}
int dr=NMAX;
while (st<=dr)
{
m=(st+dr)/2;s=0;nr=1;
for (i=1;i<=n;++i)
{
if (s+a[i]<=m) s+=a[i];
else
{
s=a[i];
++nr;
}
}
if (nr<=k) dr=m-1;
else st=m+1;
}
printf("%d\n",st);
return 0;
}