Pagini recente » Cod sursa (job #2325328) | Cod sursa (job #325210) | Cod sursa (job #1339673) | Cod sursa (job #2955727) | Cod sursa (job #1071283)
#include <fstream>
using namespace std;
int main()
{
int n, k, max = 0, sum, i, st, dr, a[16007], nr, mij;
ifstream f("transport.in");
ofstream g("transport.out");
f >> n >> k;
for (i = 1; i <= n; i++)
{
f >> a[i];
if (a[i] > max)max = a[i];
}
st = max;
dr = 16007*16007;
while (st < dr)
{
mij = (st + dr) / 2;
nr = 1;
sum = 0;
for (i = 1; i <= n;++i)
if (sum + a[i] <= mij)sum += a[i];
else sum = a[i], ++nr;
if (k < nr) st = mij + 1;
else dr = mij;
}
g << st;
return 0;
}