Pagini recente » Cod sursa (job #657516) | Cod sursa (job #1536008) | Cod sursa (job #2651087) | Cod sursa (job #1340773) | Cod sursa (job #3160782)
#include <iostream>
using namespace std;
int main()
{
int v[16001], n, k, i, st = -1, dr = 0, m, s, cnt, sol;
cin >> n >> k;
for(i = 1; i <= n; i++) {
cin >> v[i];
dr += v[i];
if(v[i] > st)
st = v[i];
}
while(st <= dr) {
m = (st + dr) / 2;
cnt = 1;
s = 0;
for(i = 1; i <= n; i++) {
if(s + v[i] <= m)
s += v[i];
else {
s = v[i];
cnt++;
}
}
if(cnt > k)
st = m + 1;
else {
sol = m;
dr = m - 1;
}
}
cout << sol;
return 0;
}