Pagini recente » Cod sursa (job #46263) | Cod sursa (job #647320) | Cod sursa (job #2056809) | Cod sursa (job #1043432) | Cod sursa (job #2803390)
#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,maxk;
f >> n >> k;
for (int i = 1; i <= n; i++)
{
f >> v[i];
maxk = max(v[i], maxk);
s += v[i];
}
st = maxk;
dr = s;
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;
}
}
g << st;
return 0;
///aici m-am inspirat la st si dreapta cu ce sa le atribui pt ca nu imi dadeam seama dc nu primeam pctj maxim
}