Pagini recente » Cod sursa (job #3262030) | Cod sursa (job #52847) | Cod sursa (job #2479712) | Cod sursa (job #1814726) | Cod sursa (job #813150)
Cod sursa(job #813150)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,k,i,a[16005],l,r,m,sol,maxim,s;
int f(int x)
{
int y=x,q=1;
for(int i=1;i<=n;i++)
{
if(y>=a[i]) y-=a[i];
else {q++;y=x; y-=a[i];}
}
if(q>k) return 0;
return 1;
}
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",&a[i]);maxim=max(maxim,a[i]);s+=a[i];}
l=maxim;r=s;
while(l<=r)
{
m=(l+r)/2;
if(f(m)) {sol=m;r=m-1;}
else l=m+1;
}
printf("%d\n",sol);
return 0;
}