Pagini recente » Cod sursa (job #2482706) | Cod sursa (job #118108) | Cod sursa (job #3246436) | Cod sursa (job #946266) | Cod sursa (job #3305466)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int saltele[16001], n, k;
int spatiu_verif(int camioane) {
int j = 1, i = 1, s;
while (j <= k) {
s = 0;
while (s + saltele[i] <= camioane && i <= n) {
s += saltele[i];
i++;
}
if (i - 1 == n)
return 1;
j++;
}
return 0;
}
int binary_search(int st, int dr) {
int mij = st + (dr - st) / 2;
if (st > dr)
return 16000 * 16000 + 1;
if (spatiu_verif(mij))
return min(mij, binary_search(st, mij - 1));
else
return binary_search(mij + 1, dr);
}
int main() {
fin >> n >> k;
for (int i = 1; i <= n; i++) {
fin >> saltele[i];
}
cout << binary_search(1, 16000 * 16000);
return 0;
}