Pagini recente » Cod sursa (job #1656675) | Cod sursa (job #1038097) | Cod sursa (job #81487) | Cod sursa (job #2947551) | Cod sursa (job #2562568)
#include <bits/stdc++.h>
#define NMAX 16001
using namespace std;
ifstream fin ("transport.in");
ofstream fout("transport.out");
int v[NMAX], n, k;
int check (int g) {
int i = 1, s = 0;
int ck = k;
while (ck) {
if (s + v[i] <= g) {
s += v[i];
i++;
}
else {
s = 0;
ck--;
}
}
if (i > n) {
return 1;
}
return 0;
}
int cBin (int maxx) {
int st = maxx, dr = INT_MAX;
while (st <= dr) {
int mid = (st + dr) / 2;
if (check(mid) == 1)
dr = mid - 1;
else
st = mid + 1;
}
return st;
}
int main()
{
fin >> n >> k;
int maxx = 1;
for (int i = 1; i <= n; i++) {
fin >> v[i];
maxx = max(maxx, v[i]);
}
fout << cBin(maxx);
}