Pagini recente » Cod sursa (job #1688167) | Cod sursa (job #2771236) | Cod sursa (job #2825903) | Cod sursa (job #220591) | Cod sursa (job #406365)
Cod sursa(job #406365)
#include<stdio.h>
#define Nmx 16005
int a[Nmx],n,k,sum,max=0;
int sepoate(int x)
{
int nr=1,sum=0;
for(int i=1;i<=n;++i)
{
if(a[i]+sum<=x)
sum+=a[i];
else {
++nr;
sum=a[i];
}
}
if(nr<=k)
return 1;
return 0;
}
void solve()
{
int st=max,dr=sum,sol;
while(st<=dr)
{
int mij=(st+dr)/2;
if(sepoate(mij))
dr=mij-1,sol=mij;
else st=mij+1;
}
printf("%d\n",sol);
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i)
{
scanf("%d",&a[i]);
if(a[i]>max) max=a[i];
sum+=a[i];
}
solve();
return 0;
}