Pagini recente » Cod sursa (job #2040220) | Cod sursa (job #492842) | Cod sursa (job #1776183) | Cod sursa (job #1545068) | Cod sursa (job #354906)
Cod sursa(job #354906)
#include<cstdio>
long n,k,x[16005];
bool ok (int cap)
{
int nrt=1;
int cc=0;
int i;
for (i=1;i<=n&&nrt<=k;++i)
{
if (x[i]>cap)
return false;
else
{
if ( cc + x[i] <= cap )
cc += x[i];
else
{
cc=x[i];
nrt ++ ;
}
}
}
if ( nrt > k )
return false ;
return true;
}
int cb()
{
int i,pas=(1<<15);
for(i=0;pas;pas>>=1)
if(!ok(i+pas))
i+=pas;
return i+1;
}
int main()
{
int i;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;i++)
scanf("%ld",&x[i]);
n=cb();
printf("%ld",n);
return 0;
}