Pagini recente » Cod sursa (job #939260) | Cod sursa (job #2797012) | Cod sursa (job #1450965) | Cod sursa (job #2621196) | Cod sursa (job #2661415)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int 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);
int sum = 0;
for(int& x : a)
fin >> x, sum += x;
int st = 0, dr = sum + 1, ans = sum + 1;
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;
}