Pagini recente » Cod sursa (job #2363945) | Cod sursa (job #561106) | Profil Raz_Van_Barbascu | Cod sursa (job #1308044) | Cod sursa (job #2889096)
#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){
if(A[i] > x)
return 0;
if(sum + A[i] <= x)
sum += A[i];
else{
sum = A[i];
curr++;
}
}
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;
}