Pagini recente » Cod sursa (job #3329171) | Diferente pentru problema/secv6 intre reviziile 5 si 4 | Cod sursa (job #3269811) | Cod sursa (job #148826) | Cod sursa (job #3305467)
#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];
}
fout << binary_search(1, 16000 * 16000);
return 0;
}