Pagini recente » Cod sursa (job #2999283) | Cod sursa (job #3284128) | Cod sursa (job #423527) | Cod sursa (job #2970955) | Cod sursa (job #2793234)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, k, i, v[16010], l = 0, r = 256000, m, sol;
int nrTrans(int c)
{
int s = v[1], nr = 1;
for (i = 2; i <= n; i++) {
if (s + v[i] <= c)
s += v[i];
else {
nr++;
s = v[i];
}
}
return nr;
}
int main()
{
f >> n >> k;
for (i = 1; i <= n; i++) {
f >> v[i];
if (v[i] > l)
l = v[i];
}
while (l <= r) {
m = (l + r) / 2;
if (nrTrans(m) > k)
l = m + 1;
else {
sol = m;
r = m - 1;
}
}
g << sol;
f.close();
g.close();
return 0;
}