Pagini recente » Cod sursa (job #1701910) | Cod sursa (job #2374304) | Cod sursa (job #2350586) | Cod sursa (job #924981) | Cod sursa (job #3311722)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main()
{
int n, sum = 0, maxi = 0, k;
cin >> n >> k;
vector<int> stv(n + 1);
for(int i = 1; i <= n; i ++){
cin >> stv[i];
maxi = max(maxi, stv[i]);
sum += stv[i];
}
int left = maxi, right = sum, mini = sum;
while(left <= right){
int middle = (left + right) / 2;
int cnt = 1, summ = 0;
for(int j = 1; j <= n; j ++){
if(summ + stv[j] <= middle)
summ += stv[j];
else
summ = stv[j], cnt ++;
}
if(cnt <= k){
mini = min(mini, middle);
right = middle - 1;
}
else
left = middle + 1;
}
cout << mini;
}