Pagini recente » Cod sursa (job #980574) | Cod sursa (job #254711) | Cod sursa (job #546126) | Cod sursa (job #557496) | Cod sursa (job #2661412)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int32_t main() {
fin.sync_with_stdio(false);
fout.sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
int N, K;
fin >> N >> K;
vector < int > a(N);
for(int& x : a)
fin >> x;
int st = 0, dr = 1e14L, ans = 1e14L;
while(st <= dr) {
int mid = (st + dr) >> 1;
int cnt = 1, sum = 0;
for(int x : a) {
if(x > mid) {
cnt = K + 1;
break;
}
if(sum + x <= mid)
sum += x;
else {
sum = x;
++cnt;
}
if(cnt > K)
break;
}
if(cnt <= K) {
ans = mid;
dr = mid - 1;
}
else
st = mid + 1;
}
fout << ans;
}