Pagini recente » Cod sursa (job #287568) | Cod sursa (job #171472) | Cod sursa (job #1820564) | Cod sursa (job #1005874) | Cod sursa (job #883721)
Cod sursa(job #883721)
#include<cstdio>
#define nmax 16005
using namespace std;
int i,n,k,v[nmax],l,r,s,mid,aux,nr;
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d ", &n, &k);
for(i=1;i<=n;++i){scanf("%d ", &v[i]);if(v[i]>l)l=v[i];r+=v[i];}
for(;l<=r;)
{
mid=(l+r)/2;
s=0;
nr=0;
for(i=1;i<=n;++i)
if(v[i]+s<=mid)s+=v[i];
else{nr++;s=v[i];}
if(s)nr++;
if(nr<=k){aux=mid;r=mid-1;}
else l=mid+1;
}
if(nr<=k)printf("%d ", mid);
else printf("%d ", aux);
return 0;
}