Pagini recente » Cod sursa (job #2805221) | Cod sursa (job #663557) | Cod sursa (job #2536182) | Cod sursa (job #1733587) | Cod sursa (job #3142108)
#include <iostream>
using namespace std;
int n, k, v[16005];
bool verif(int c) {
int s = 0, nrtrans = 0;
for (int i = 1; i <= n; ++i) {
if (s + v[i] <= c)
s += v[i];
else {
if (v[i] > c)
return 0;
s = v[i];
++nrtrans;
}
}
if (s > 0)
++nrtrans;
return nrtrans <= k;
}
int main() {
cin >> n >> k;
for (int i = 1; i <= n; ++i) {
cin >> v[i];
}
int st = 1;
int dr = 256000000;
while (st <= dr) {
int m = (st + dr) / 2;
if (verif(m))
dr = m - 1;
else
st = m + 1;
}
cout << st;
}