Pagini recente » Cod sursa (job #3247949) | Cod sursa (job #813344) | Cod sursa (job #388849) | Cod sursa (job #1638914) | Cod sursa (job #897600)
Cod sursa(job #897600)
#include <cstdio>
#define NMax 16002
using namespace std;
long o,k,n,v[NMax],x,s,maxel;
bool verif(long c) {
long sum=0,i;
o=1;
for(i=1;i<=n&&o<=k;i++) {
if(sum+v[i]<=c)
sum+=v[i];
else
sum=v[i],o++;
}
if(i==n+1&&o<=k)
return 1;
return 0;
}
int bsearch(long in,long fn) {
long mid;
while(in<=fn) {
mid=(fn-in)/2+in;
if(in==fn)
return in;
else
if(verif(mid))
fn=mid;
else
in=mid+1;
}
return 0;
}
int main() {
freopen("transport.in","rt",stdin);
freopen("transport.out","wt",stdout);
scanf("%ld %ld",&n,&k);
for(long i=1;i<=n;i++) {
scanf("%ld",&x);
s+=x;
v[i]=x;
if(x>maxel)
maxel=x;
}
printf("%ld",bsearch(maxel,s+1));
return 0;
}