Pagini recente » Cod sursa (job #2832463) | Cod sursa (job #942811) | Cod sursa (job #319266) | Cod sursa (job #687819) | Cod sursa (job #1555700)
#include <fstream>
using namespace std;
bool bun(unsigned v[], unsigned n, unsigned k, unsigned test)
{
unsigned nr = 1, s = 0;
for (unsigned i = 0; i < n; i++)
{
if (v[i] > test)
return false;
s += v[i];
if (s > test)
s = v[i], nr++;
}
return (nr <= k ? true : false);
}
int main()
{
ifstream ii("transport.in");
ofstream oo("transport.out");
unsigned n, k, i, pas = 16384*16384, test = 0, cap = pas;
ii >> n >> k; unsigned v[n];
for (i = 0; i < n; i++) ii >> v[i];
for (; pas; pas /= 2)
{
if (bun(v, n, k, test + pas))
cap = test + pas;
else
test += pas;
}
oo << cap;
}