Pagini recente » Cod sursa (job #2484622) | Cod sursa (job #2967086) | Cod sursa (job #382727) | Cod sursa (job #700299) | Cod sursa (job #3142109)
#include <fstream>
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() {
ifstream cin("transport.in");
ofstream cout("transport.out");
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;
}