Pagini recente » Cod sursa (job #1756686) | Cod sursa (job #592081) | Cod sursa (job #1476116) | Cod sursa (job #3166411) | Cod sursa (job #3160797)
#include <fstream>
using namespace std;
int v[16001];
int main()
{
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int 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;
}