Pagini recente » Cod sursa (job #834722) | Cod sursa (job #687581) | Cod sursa (job #22877) | Cod sursa (job #713957) | Cod sursa (job #2269528)
#include <stdio.h>
int v[16001];
int main () {
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int n, k, i, st, dr, mij, t, poz, max, min, s, x;
scanf("%d%d", &n, &k);
min=1000001;
max=0;
for(i=1; i<=n; i++) {
scanf("%d", &v[i]);
if(min > v[i])
min=v[i];
max+=v[i];
}
st=0;
dr=300000000;
while(st<=dr) {
mij=(st+dr)/2;
s=0;
t=1;
for(i=1; i<=n; i++) {
if(s+v[i]<=mij) {
s+=v[i];
}
else {
t++;
s=v[i];
}
}
i--;
if(t>k)
st=mij+1;
else {
dr=mij-1;
poz=mij;
}
}
printf("%d", poz);
return 0;
}