Pagini recente » Cod sursa (job #1098330) | Cod sursa (job #2805740) | Cod sursa (job #259050) | Cod sursa (job #1196685) | Cod sursa (job #391349)
Cod sursa(job #391349)
#include<stdio.h>
const char in[]="transport.in";
const char out[]="transport.out";
const int N=16005;
int v[N], n, k;
long s;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d %d", &n, &k);
int i, hi, lo, mid, trans=0, max=0, cant=0, sol;
for(i=1;i<=n;++i)
{
scanf("%d", &v[i]);
s+=v[i];
if(v[i]>max)max=v[i];
}
for(hi=s, lo=max;lo<=hi;)
{
mid=lo+(hi-lo)/2;
for(i=1;i<=n;++i)
{
if(cant+v[i]<=mid)cant+=v[i];
else cant=v[i], ++trans;
}
if(trans<=k)hi=mid-1,sol=mid;
else lo=mid+1;
}
printf("%d", sol);
return 0;
}