Pagini recente » Cod sursa (job #608654) | Cod sursa (job #2256986) | Cod sursa (job #1864987) | Cod sursa (job #703356) | Cod sursa (job #3323083)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, a[16003], nr, s, x;
int main()
{
int i, j, st, dr, mij;
fin >> n >> k;
for (i = 1; i <= n; i++)
{
fin >> a[i];
nr = max(nr, a[i]);
}
st = nr; dr = 16000; nr = 0;
while (st <= dr)
{
mij = (st + dr) / 2;
s = 0; x = 0;
for (j = 1; j <= n; j++)
if (a[j] + s <= mij) s += a[j];
else
{
x++;
s = a[j];
}
if (s != 0) x++;
if (x <= k)
{
nr = mij;
dr = mij - 1;
}
else st = mij + 1;
}
fout << nr << "\n";
fout.close();
return 0;
}