Pagini recente » Cod sursa (job #2371548) | Cod sursa (job #3241798) | Cod sursa (job #1103026) | Cod sursa (job #2881191) | Cod sursa (job #3255266)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k, s = 0, v[16005];
int main() {
cin >> n >> k;
int m = 0;
for (int i = 1; i <= n; i++) {
cin >> v[i];
s += v[i];
if (m < v[i])
m = v[i];
}
int l = m, r = s, x, res = 1e9;
while (l <= r) {
x = (l + r) / 2;
int t = 0, p = 1;
for (int i = 1; i <= n; i++) {
if (t + v[i] <= x) {
t += v[i];
} else {
p++;
t = v[i];
}
}
if (p <= k) {
res = min(res, x);
r = x - 1;
} else {
l = x + 1;
}
}
cout << res;
return 0;
}