Pagini recente » Cod sursa (job #854767) | Cod sursa (job #1634512) | Cod sursa (job #2802298) | Cod sursa (job #2830868) | Cod sursa (job #2889095)
#include <bits/stdc++.h>
using namespace std;
int N , K;
int A[16005];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N >> K;
for(int i = 1;i <= N; ++i)
cin >> A[i];
int st = 1 ,dr = 1e9;
int rez = 0;
auto good = [&](int x) ->bool{
int curr = 1;
int sum = 0;
for(int i = 1;i <= N; ++i){
sum += A[i];
if(sum > x){
curr++;
sum = A[i];
}
}
return curr <= K;
};
while (st <= dr){
int mid = (st + dr) / 2;
if(!good(mid))
st = mid + 1;
else {
rez = mid;
dr = mid - 1;
}
}
cout << rez;
}