Pagini recente » Cod sursa (job #1839863) | Cod sursa (job #1171268) | Cod sursa (job #2791446) | Cod sursa (job #689008) | Cod sursa (job #494020)
Cod sursa(job #494020)
#include <stdio.h>
#include <math.h>
int v[10000],n,k;
int bs(int x)
{
int i,pas=1<<16;
for (i=0;pas;pas>>=1)
if (i+pas<=n && v[i+pas]<=x)
i+=pas;
return i;
}
bool ok(int x)
{
int i,j;
for (i=0,j=1;j<=k && i<=n;j++)
i=bs(v[i]+x);
return i==n;
}
int bsearch()
{
int i,pas;
pas=1<<28;
for (i=0;pas;pas>>=1)
if (!ok(i + pas))
i+=pas;
return i+1;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
int i;
for(i=1;i<=n;++i)
{
scanf("%d",v+i);
v[i]+=v[i-1];
}
i=bsearch();
printf("%d",i);
return 0;
}