Pagini recente » Cod sursa (job #2793345) | Cod sursa (job #815095) | Cod sursa (job #2040507) | Cod sursa (job #299989) | Cod sursa (job #3036864)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, i, a[16002], m, st, dr, mij, t, r = -1;
static inline int sim(int cap) {
int trans = 0, tot = 0;
for(i = 1; i <= n; i++) {
if(tot + a[i] <= cap) tot += a[i];
else tot = a[i], trans++;
}
return trans;
}
int main() {
fin >> n >> k;
for(i = 1; i <= n; i++) {
fin >> a[i];
m = max(m, a[i]);
}
st = m;
dr = 1e8 + 2;
while(st <= dr) {
mij = st + (dr - st) / 2;
t = sim(mij);
if(t <= k) dr = mij - 1, r = mij;
else st = mij + 1;
}
fout << r;
return 0;
}