Pagini recente » Cod sursa (job #1933926) | Cod sursa (job #1921821) | Cod sursa (job #1029050) | Cod sursa (job #2099214) | Cod sursa (job #1385915)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, maxim, i, j, s[16010], c, cc, t, sum, p, u;
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++) {
fin>>s[i];
if (s[i] > maxim)
maxim = s[i];
sum += s[i];
}
p = maxim;
u = sum;
while (p <= u) {
// verific cate transporturi fac cu un camion de capacitate c
c = (p + u) / 2;
cc = c;
t = 1;
for (j=1;j<=n;j++) {
if (s[j] <= cc) {
cc -= s[j];
} else {
t++;
cc = c - s[j];
}
}
if (t <= k) {
u = c - 1;
} else
p = c + 1;
}
fout<<p;
return 0;
}