Pagini recente » Cod sursa (job #2558377) | Cod sursa (job #2963264) | Cod sursa (job #141795) | Cod sursa (job #3205264) | Cod sursa (job #1146565)
#include <cstdio>
using namespace std;
long k,a[17000],n,i,s,r,l,lf,mij,x;
long verif (long x)
{
long y,d,crt=1;
for (y=1; y<=k; y++)
{
d=0;
while (d+a[crt]<=x)
{
d+=a[crt];
crt++;
}
}
if (crt==n+1) return 1;
return 0;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
for (i=1; i<=n; i++)
{
scanf("%ld",&a[i]);
s+=a[i];
}
r=s; l=1; lf=s; a[n+1]=s+100;
do{
mij=(l+r)/2;
x=verif(mij);
if (x==1)
{
lf=mij; r=mij-1;
}
else
l=mij+1;
}while(l<=r);
printf("%ld",lf);
return 0;
}