Pagini recente » Cod sursa (job #3261636) | Cod sursa (job #2485667) | Cod sursa (job #2585700) | Cod sursa (job #453333) | Cod sursa (job #1068313)
#include<cstdio>
using namespace std;
int n,k,a[16005],st,dr,m,s,nr;
int main()
{
int i;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for (i=1;i<=n;++i)
{
scanf("%d",&a[i]);
if (a[i]>st) st=a[i];
}
dr=26000000;
while( st < dr )
{
s=0,nr=1;
m=(dr+st)/2;
for (int i=1;i<=n;++i)
if (s+a[i]<=m)
s+=a[i];
else
{
s=a[i];
++nr;
}
if (nr>k)
st=m+1;
else
dr=m;
}
printf("%d\n",st);
return 0;
}