Pagini recente » Cod sursa (job #989041) | Cod sursa (job #526234) | Cod sursa (job #830299) | Cod sursa (job #2323607) | Cod sursa (job #2803381)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main()
{
int v[16005], n, k, st, dr, mijl, cont, s = 0;
f >> n >> k;
for (int i = 1; i <= n; i++)
{
f >> v[i];
}
st = 1;
dr = n * n;
while (st != dr)
{
s = 0;
cont = 1;
mijl = (st + dr) / 2;
for (int i = 1; i <= n; i++)
{
if (s + v[i] <= mijl)
{
s += v[i];
}
else {
s = v[i];
cont++;
}
}
if (cont <= k)
{
dr = mijl;
}else{
st = mijl + 1;
}
}
if (n == k)
{
sort(v, v + n + 1);
st = v[n];
}
g << st;
return 0;
}