Pagini recente » Cod sursa (job #143241) | Cod sursa (job #2733179) | Cod sursa (job #685973) | Cod sursa (job #936191) | Cod sursa (job #2100378)
#include <fstream>
#define DIM 16002
using namespace std;
int v[DIM];
int n, k, maxim, i, cap, cc, t, suma, st, dr;
int main () {
ifstream fin ("transport.in");
ofstream fout("transport.out");
fin>>n>>k;
maxim = -1;
for (i=1;i<=n;i++) {
fin>>v[i];
if (v[i] > maxim)
maxim = v[i];
suma += v[i];
}
st = maxim;
dr = suma;
while (st <= dr) {
/// numar cate transporturi as face cu un camion de capacitate cap
int mid = (st + dr)/2;
cc = mid - v[1];
t = 1;
for (i=2;i<=n;i++) {
if (v[i] <= cc)
cc -= v[i];
else {
t++;
cc = mid - v[i];
}
}
if (t <= k)
dr = mid-1;
else
st = mid+1;
}
fout<<st;
}