Pagini recente » Cod sursa (job #1322897) | Cod sursa (job #1171290) | Cod sursa (job #1172232) | Cod sursa (job #180164) | Cod sursa (job #2808364)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main()
{
int v[16005], n, k, st, dr, mijl, cont, s = 0, nr,maxx=0;
f >> n >> k;
for (int i = 1; i <= n; i++)
{
f >> v[i];
maxx = max(maxx,v[i]);
}
st = maxx;
dr = 256000005;
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;
}