Pagini recente » Cod sursa (job #744247) | Cod sursa (job #2401686) | Cod sursa (job #1213235) | Cod sursa (job #325875) | Cod sursa (job #1443987)
//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 + 1 != 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;
} else {
dr = mij;
}
}
fprintf(fo, "%ld", st + 1);
return 0;
}