Pagini recente » Cod sursa (job #2899902) | Cod sursa (job #626800) | Cod sursa (job #3169267) | Cod sursa (job #2923579) | Cod sursa (job #2366983)
//#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
long long v[16005];
bool good(long long x, int n, int k) {
long long cur = 0;
int trans = 1;
for (int i = 1; i <= n; ++i) {
if (x < v[i]) return false;
if (cur + v[i] > x) {
cur = 0;
trans++;
}
cur += v[i];
}
if (trans > k) {
return false;
}
return true;
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(0); fout.tie(0);
int n, k;
long long left = 1;
long long right = 0;
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
right += v[i];
}
long long mid;
while (left <= right) {
mid = left + (right - left) / 2;
if (good(mid, n, k)) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
fout << mid << '\n';
}