Pagini recente » Cod sursa (job #1769150) | Cod sursa (job #1861164) | Cod sursa (job #1290837) | Cod sursa (job #840942) | Cod sursa (job #1672206)
#include<iostream>
#include<stdio.h>
int v[16005];
using namespace std;
int main(){
FILE *fin=fopen("transport.in","r");
FILE *fout=fopen("transport.out","w");
int n,k,mx=0,l1,l2,m,nrtransp,s,i,ind,maxx=-1;
fscanf(fin, "%d%d", &n, &k);
for(i=1;i<=n;i++){
fscanf(fin, "%d", &v[i]);
mx+=v[i];
if(v[i]>maxx)
maxx=v[i];
}
l1=maxx;
l2=mx;
while(l1<=l2){
m=(l1+l2)/2;
nrtransp=1;
s=0;
ind=1;
while(ind<=n){
s+=v[ind];
if(s>m){
nrtransp++;
s=v[ind];
}
ind++;
}
if(nrtransp>k)
l1=m+1;
else
l2=m-1;
}
fprintf(fout, "%d", l1);
fclose(fin);
fclose(fout);
return 0;
}