Pagini recente » Cod sursa (job #1826059) | Cod sursa (job #1513574) | Cod sursa (job #2187868) | Cod sursa (job #3186012) | Cod sursa (job #355954)
Cod sursa(job #355954)
#include<stdio.h>
#define DIM 16005
int n,k,a[DIM];
int check (int x)
{
int sum=0,q=k,i;
for(i=1;i<=n;++i)
{
if(sum+a[i]>x)
sum=a[i],--q;
else
sum+=a[i];
}
if(q<=0)
return 0;
return 1;
}
int solve (int st,int dr)
{
int mij,min=dr;
while(st<=dr)
{
mij=(st+dr)/2;
if(check(mij))
min=mij,dr=mij-1;
else
st=mij+1;
}
return min;
}
int main ()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int i,sum=0,max=0;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
{
scanf("%d",&a[i]);
sum+=a[i];
if(max<a[i])
max=a[i];
}
printf("%d",solve (max,sum));
return 0;
}