Pagini recente » Cod sursa (job #1519935) | Cod sursa (job #1330063) | Cod sursa (job #1779899) | Cod sursa (job #3201134) | Cod sursa (job #1443988)
//0115
#include <cstdio>
int main() {
FILE* fi = fopen("transport.in", "rt");
FILE* fo = fopen("transport.out", "wt");
long n, k, v[16010];
fscanf(fi, "%ld%ld", &n, &k);
long st = 0, dr = 0;
for (int i = 0; i < n; i++) {
fscanf(fi, "%ld", &v[i]);
dr +=v[i];
if (v[i] > st) {
st = v[i];
}
}
while (st <= dr) {
long mij = (st + dr) / 2;
long vm = 0;
long aux = mij;
for (int i = 0 ; i < n; i++) {
if (v[i] > aux) {
aux = mij;
vm++;
}
aux -= v[i];
}
if (vm >= k) {
st = mij + 1;
} else {
dr = mij - 1;
}
}
fprintf(fo, "%ld", st);
return 0;
}