Pagini recente » Cod sursa (job #1574729) | Cod sursa (job #2133178) | Cod sursa (job #1349437) | Cod sursa (job #612921) | Cod sursa (job #1417979)
#include <cstdio>
using namespace std;
int p=0,u,mj,i,n,k,x,a[16005];
inline int trans(int x)
{
int i,nr=x+1,k=0;
for(i=1;i<=n;++i)
if(nr+a[i]<=x) nr+=a[i];
else ++k, nr=a[i];
return k;
}
int main()
{
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]);
p=a[i]>p?a[i]:p;
}
u=16000*16000;
while(p<=u)
{
mj=(p+u)>>1;
x=trans(mj);
if(x<=k) u=mj-1;
else p=mj+1;
}
printf("%d\n",u+1);
return 0;
}