Pagini recente » Cod sursa (job #754280) | Cod sursa (job #2125553) | Cod sursa (job #2288342) | Cod sursa (job #831165) | Cod sursa (job #2886975)
#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;
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 dr = mid - 1;
}
cout << st;
}