Pagini recente » Cod sursa (job #1747647) | Cod sursa (job #937168) | Cod sursa (job #2230828) | Cod sursa (job #1396404) | Cod sursa (job #2890561)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n, k, v[16001], Max;
bool check(int x, int k)
{
int sum = 0, i = 1;
while (i <= n) {
sum += v[i];
if (sum > x) {
k--;
sum = 0;
}
else
i++;
}
if (k < 0 || (k == 0 && sum))
return 0;
return 1;
}
int Binary_search(int k)
{
int i, step = 1 << 25;
for (i = Max; step; step >>= 1)
if (i + step < (1 << 25) && !check(i + step, k))
i += step;
return i;
}
int main()
{
in >> n >> k;
for (int i = 1; i <= n; i++) {
in >> v[i];
Max = max(Max, v[i]);
}
out << Binary_search(k) + 1;
return 0;
}