Pagini recente » Cod sursa (job #572048) | Cod sursa (job #2823768) | Cod sursa (job #1708359) | Cod sursa (job #1204678) | Cod sursa (job #2794230)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, k, i, v[16010], l = 0, r = 256000000, 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;
return 0;
}