Pagini recente » Cod sursa (job #304994) | Cod sursa (job #1208676) | Rating Birsan Catalin (shehatesavo) | Cod sursa (job #1208663) | Cod sursa (job #1562814)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
long long n, k, i;
long long pas = 16384*16384;
long long cap = pas;
long long v [16002];
bool ok(long long test)
{
long long nr = 1, s = 0;
for (long long i = 0; i < n; i++)
{
if (v[i] > test)
{
return 0;
}
s += v[i];
if (s > test)
{
s = v[i], nr++;
}
}
return nr <= k;
}
int main()
{
in >> n >> k;
long long test = 0;
for (i = 0; i < n; i++)
{
in >> v[i];
}
for (; pas; pas /= 2)
{
if (ok (test + pas))
{
cap = test + pas;
}
else
{
test += pas;
}
}
out << cap;
return 0;
}