Pagini recente » Cod sursa (job #2756510) | Cod sursa (job #2586345) | Cod sursa (job #1421601) | Cod sursa (job #1031228) | Cod sursa (job #2863795)
#include <bits/stdc++.h>
using namespace std;
int v[1601];
bool vrf(int c, int n, int t) {
int s = 0, k = 0;
for(int i = 1; i <= n; ++i) {
s = s + v[i];
if(s > c) {
s = v[i];
++k;
}
}
++k;
if(k <= t)
return true;
else
return false;
}
int main() {
// ifstream cin ("transport.in");
// ofstream cout ("transport.out");
int n, k;
cin >> n >> k;
int dr = 0, st = 0;
for(int i = 1; i <= n; ++i) {
cin >> v[i];
dr = dr + v[i];
if(st < v[i])
st = v[i];
}
int minc = dr;
while(st <= dr) {
int x = (st + dr) / 2;
if(vrf(x, n, k) == true) {
minc = x;
dr = x - 1;
}
else
st = x + 1;
}
cout << minc;
return 0;
}