Pagini recente » Cod sursa (job #2356318) | Cod sursa (job #998596) | Cod sursa (job #1510881) | Cod sursa (job #878451) | Cod sursa (job #1071272)
#include <fstream>
using namespace std;
int main()
{
int n, k, max = 0, sum = 0, 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];
sum += a[i];
}
st = max;
dr = sum;
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-1;
}
g << mij;
return 0;
}