Pagini recente » Cod sursa (job #2841768) | Cod sursa (job #1001846) | Statistici Lazar Diana (diana_11) | Cod sursa (job #731046) | Cod sursa (job #2003429)
#include <cstdio>
const int MAXN = 1e4 + 6e3;
int v[MAXN];
int main() {
int n, k, cc, st, dr, m, s;
FILE *f = fopen("transport.in", "r");
fscanf(f, "%d%d", &n, &k);
st = dr = 0;
for (int i = 0; i < n; ++i) {
fscanf(f, "%d", &v[i]);
if (st < v[i]) {
st = v[i];
}
dr += v[i];
}
fclose(f);
while (st <= dr) {
m = (st + dr) >> 1;
s = 0;
cc = 1;
for (int i = 0; i < n; ++i) {
s += v[i];
if (s > m) {
++cc;
s = v[i];
}
}
if (cc > k) {
st = m + 1;
} else {
dr = m - 1;
}
}
f = fopen("transport.out", "w");
fprintf(f, "%d\n", st);
fclose(f);
return 0;
}