Pagini recente » Cod sursa (job #1045623) | Cod sursa (job #2944420) | Cod sursa (job #1155234) | Cod sursa (job #1868167) | Cod sursa (job #2366978)
//#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transporturi.in");
ofstream fout("transporturi.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';
}