Pagini recente » Cod sursa (job #2380504) | Cod sursa (job #750663) | Cod sursa (job #334221) | Cod sursa (job #2029965) | Cod sursa (job #2774774)
#include<stdio.h>
int a[16001],n,i,k,s[16001],x,c,t,j,m,p,r,q;
int main()
{
freopen("transport.in","r",stdin),freopen("transport.out","w",stdout),scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",a+i),s[i]=s[i-1]+a[i],m=m<a[i]?a[i]:m;
p=m,q=s[n];
if(k>=n)
printf("%d",m);
else if(k==1)
printf("%d",s[n]);
else {
while(p<=q) {
for(r=(p+q)/2,i=1,t=x=0;i<=n;)
if(s[i]-s[t]<=r)
++i;
else
t=i-1,++x;
if(s[n]-s[t]<=r)
++x;
if(x>k)
p=r+1;
else
q=r-1;
}
if(x>k)
++r;
printf("%d",r);
}
return 0;
}