Pagini recente » Cod sursa (job #3336426) | Cod sursa (job #3324217) | Cod sursa (job #1855197) | Cod sursa (job #3356189) | Cod sursa (job #3323086)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, a[16003], nr, x;
long long s;
int main()
{
ios_base::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
long long i, j, st, dr, mij;
fin >> n >> k;
for (i = 1; i <= n; i++)
{
fin >> a[i];
nr = max(nr, a[i]);
s += a[i];
}
st = nr; dr = s; 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;
}