Pagini recente » Cod sursa (job #2112646) | Cod sursa (job #822329) | Cod sursa (job #1160885) | Istoria paginii runda/autumn19 | Cod sursa (job #915091)
Cod sursa(job #915091)
#include <cstdio>
using namespace std;
int v[16005],n,k;
int tr(int c) {
int i,t=0,s=0;
for(i=1; i<=n; i++) {
if(v[i]>c)
return k+1;
if(s+v[i]<=c)
s=s+v[i];
else {
s=v[i];
t++;
}
}
if(s>0) t++;
return t;
}
int main() {
int s=0,st,dr,i,med,last;
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]);
s+=v[i];
}
st=1;
dr=s;
while(st<=dr) {
med=(st+dr)/2;
if(tr(med)<=k) {
last=med;
dr=med-1;
} else
st=med+1;
}
printf("%d",last);
return 0;
}