Pagini recente » Cod sursa (job #2381019) | Cod sursa (job #1901023) | Cod sursa (job #1197199) | Cod sursa (job #197203) | Cod sursa (job #474061)
Cod sursa(job #474061)
#include <cstdio>
int v[1<<14],n,k;
void citire()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i)
{
scanf("%d",v+i);
v[i]+=v[i-1];
}
}
int cautbin(int x)
{
int i,step=1<<14;
for (i=0;step;step>>=1)
if (i+step<=n && v[i+step]<=x)
i+=step;
return i;
}
bool ok(int x)
{
int i,j;
for (i=0,j=1;j<=k && i<=n;j++)
i=cautbin(v[i]+x);
return i==n;
}
int bs()
{
int i,step=1<<28;
for (i=0;step;step>>=1)
if (!ok(i+step))
i+=step;
return i+1;
}
int main()
{
citire();
printf("%d",bs());
return 0;
}