Pagini recente » Cod sursa (job #2522013) | Cod sursa (job #672829) | Cod sursa (job #1401650) | Cod sursa (job #1517300) | Cod sursa (job #494026)
Cod sursa(job #494026)
#include <cstdio>
using namespace std;
int v[1<<14],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;
}