Pagini recente » Cod sursa (job #1957218) | Cod sursa (job #1490535) | Cod sursa (job #2867815) | Cod sursa (job #2725006) | Cod sursa (job #2163507)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001];
int main()
{
int n, k, s = 0, maxi = 0, i, ans;
fin >> n >> k;
for(i = 0; i < n; i++) {
fin >> v[i];
if(v[i] > maxi)
maxi = v[i];
s += v[i];
}
int st = maxi, dr = s;
while(st <= dr) {
int m = (dr + st) / 2, x = 0;
i = 0;
while(i < n) {
int cm = m;
while(cm - v[i] >= 0) {
cm -= v[i++];
}
x++;
}
if(x <= k) {
dr = m - 1;
ans = m;
} else
st = m + 1;
}
fout << ans;
return 0;
}