Pagini recente » Cod sursa (job #459505) | Cod sursa (job #212380) | Cod sursa (job #8085) | Cod sursa (job #1991469)
#include<cstdio>
const int nmax=16005;
int k,st,dr,n;
int v[nmax];
inline int max(int a,int b)
{
if(a>b)
return a;
return b;
}
inline int nr(int x)
{
int i,s=0,cnt=1;
for(i=1;i<=n;++i)
{
s+=v[i];
if(s>x)
{
s=v[i];
cnt++;
}
}
return cnt;
}
inline int bsearch(int x)
{
int i,step;
for(step=1;step<=dr;step<<=1);
for(i=dr;step;step>>=1)
if(i-step>=st&&nr(i-step)<=x)
i-=step;
return i;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int i,j;
scanf("%d%d",&n,&k);
scanf("%d",&v[1]);
st=dr=v[1];
for(i=2;i<=n;++i)
{
scanf("%d",&v[i]);
st=max(st,v[i]);
dr+=v[i];
}
printf("%d",bsearch(k));
}