Pagini recente » Cod sursa (job #2280940) | Cod sursa (job #2912140) | Cod sursa (job #123054) | Cod sursa (job #1731145) | Cod sursa (job #1761752)
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out g
ifstream f("transport.in");
ofstream g("transport.out");
int const inf = 1000000;
int n;
int k;
int v[16010];
int result;
int maxx;
int valid(int x) {
int drum = 1;
int aux = x;
for(int i = 1; i <= n; ++i) {
if(aux >= v[i]) {
aux -= v[i];
} else {
aux = x - v[i];
drum++;
}
}
if(drum <= k) {
return true;
} else {
return false;
}
}
int binsearch(int start, int fin) {
int mid = (fin + start) / 2;
while(fin - start > 1) {
mid = (fin + start) / 2;
if(valid(mid)) {
fin = mid;
} else {
start = mid;
}
}
return mid;
}
int main() {
in >> n;
in >> k;
for(int i = 1; i <= n; ++i) {
in >> v[i];
maxx = max(maxx, v[i]);
}
out << binsearch(0, inf);
}