Pagini recente » Cod sursa (job #2765926) | Cod sursa (job #2932796) | Cod sursa (job #2298605) | Cod sursa (job #2552975) | Cod sursa (job #480786)
Cod sursa(job #480786)
#include<stdio.h>
#define nmax 16005
int n,k;
int v[nmax];
long s,w;
void read()
{
int i;
scanf("%d%d",&n,&k);
for (i=1;i<=n;i++)
{
scanf("%d",&v[i]);
s+=v[i];
}
}
int rez(long m)
{
int i,p;
long u;
u=0;
p=0;
for (i=1;i<=n;i++)
{
if (u+v[i]>m)
{
p++;
u=0;
}
u+=v[i];
}
return p+1;
}
void cautbin(long st,long dr)
{
long m;
int p;
if (st<=dr)
{
m=(st+dr)/2;
p=rez(m);
if (p<=k)
{
w=m;
cautbin(st,m-1);
}
else cautbin(m+1,dr);
}
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
read();
cautbin(1,s);
printf("%ld\n",w);
return 0;
}