Pagini recente » Cod sursa (job #1858380) | Cod sursa (job #3130383) | Cod sursa (job #970638) | Cod sursa (job #2189467) | Cod sursa (job #312141)
Cod sursa(job #312141)
#include<stdio.h>
#define X 17000
int n,k,v[X],sol=0;
int build(int min)
{
int i,t=1,sum=0;
for(i=0; i<n; i++)
if(sum+v[i]<=min) sum+=v[i];
else { t++; sum=v[i]; }
return t;
}
void srch(int st, int dr)
{
int mijl=st+(dr-st)/2;
if(build(mijl)<=k)
{
sol=mijl;
if(st<=mijl-1) srch(st,mijl-1);
}
else if(mijl+1<=dr) srch(mijl+1,dr);
}
int main()
{
int i,max=0,min=-X;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=0; i<n; ++i)
{
scanf("%d",&v[i]);
max+=v[i];
if(v[i]>min) min=v[i];
}
srch(min,max);
printf("%d",sol);
return 0;
}