Pagini recente » Cod sursa (job #2173548) | Cod sursa (job #50891) | Cod sursa (job #2698850) | Cod sursa (job #1148760) | Cod sursa (job #494007)
Cod sursa(job #494007)
#include <fstream>
using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
const int N = 1 << 14;
int n, k, v[N];
int nr_trans (int x) {
int cnt = 0, sum = 0;
for (int i = 1; i <= n; ++i) {
if (sum + v[i] > x) {
++cnt;
sum = v[i];
continue;
}
sum += v[i];
}
if (sum) {
++cnt;
}
return cnt;
}
int bs () {
int i, step = 1 << 29;
for (i = 0; step; step >>= 1) {
if (nr_trans(i + step) > k) {
i += step;
}
}
return i + 1;
}
void citire () {
in >> n >> k;
for (int i = 1; i <= n; in >> v[i++]);
}
void afisare () {
out << bs ();
}
int main () {
citire ();
afisare ();
return 0;
}