Pagini recente » Cod sursa (job #2097615) | Cod sursa (job #1898660) | Cod sursa (job #2344884) | Cod sursa (job #3223620) | Cod sursa (job #2366747)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
long long v[16002];
int main()
{
long long n ,k, i, maxx = 0, s = 0, s1 = 0, st, dr, mijl,cnt = 0;
fin >> n >> k;
for (i = 1; i <= n; i++) {
fin >> v[i];
if (v[i] > maxx) maxx = v[i];
s += v[i];
}
st = maxx;
dr = s;
while (st <= dr) {
mijl = (st + dr) / 2;
for (i = 1; i <= n; i++) {
if (s1 + v[i] <= mijl) s1 = s1 + v[i];
else {
cnt++;
s1 = 0;
s1 += v[i];
}
}
cnt++;
if (cnt > k) st = mijl + 1;
else dr = mijl - 1;
s1 = 0;
cnt = 0;
}
fout << mijl;
return 0;
}