Pagini recente » Cod sursa (job #92842) | Cod sursa (job #2535129) | Cod sursa (job #2401370) | Cod sursa (job #2488319) | Cod sursa (job #284060)
Cod sursa(job #284060)
#include <stdio.h>
int v[16001];
int i,n,k,s,min=1000000000,sinc,drum,max,mid;
void incarca (int mid)
{
i=1; drum=0;
while (i<=n){
sinc=0;
while (sinc+v[i]<=mid) sinc=sinc+v[i++];
drum++;
}
}
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",&v[i]);
s=s+v[i];
if (max<v[i]) max=v[i];
}
v[n+1]=1000000000;
while (max<=s){
mid=(max+s)/2;
incarca (mid);
if (drum<=k && min>mid) min=mid;
if (max==s) break;
if ((drum<=k)&&(drum>1)) s=mid;
else max=mid+1;
}
printf ("%d",min);
return 0;
}