Pagini recente » Cod sursa (job #77357) | Cod sursa (job #233877) | Cod sursa (job #2407658) | Cod sursa (job #2658638) | Cod sursa (job #2890042)
#include <bits/stdc++.h>
#define N 16005
using namespace std;
int v[N], n;
int get_transporturi(int x) {
int rez = 0, S = x + 1;
for (int i = 0; i < n; ++i) {
if (S + v[i] <= x)
S += v[i];
else {
++rez;
S = v[i];
}
}
return rez;
}
int main() {
ifstream fin("transport.in");
ofstream fout("transport.out");
int k;
fin >> n >> k;
int maxx = 0;
for (int i = 0; i < n; ++i) {
fin >> v[i];
maxx += v[i];
}
int putere, i;
for (putere = 1; putere <= maxx; putere <<= 1);
for (i = 0; putere; putere >>= 1) {
if ((i | putere) <= maxx && get_transporturi(i | putere) > k) {
i |= putere;
}
}
fout << i;
return 0;
}