Pagini recente » Cod sursa (job #682796) | Cod sursa (job #2471696) | Cod sursa (job #1438285) | Cod sursa (job #2226780) | Cod sursa (job #391351)
Cod sursa(job #391351)
#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, max=0, cant, 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;cant=0, trans=1;
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;
}