Pagini recente » Cod sursa (job #162836) | Cod sursa (job #2968963) | Cod sursa (job #2279825) | Cod sursa (job #2068561) | Cod sursa (job #2892684)
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int n, k, T, C, maxim, i, x, crt, s;
int main(){
ifstream fin("transport.in");
ofstream fout("transport.out");
fin >> n >> k;
for(i = 0; i < n; ++i){
fin >> x;
v.push_back(x);
T += v[i];
maxim = max(maxim, v[i]);
}
int left = maxim, right = T;
while(left < right){
C = (left + right) / 2;
crt = 1;
s = 0;
for(i = 0; i < n; ++i){
s += v[i];
if(s > C){
++crt;
s = v[i];
}
}
if(crt <= k)
right = C;
else left = C + 1;
}
fout << right;
fin.close();
fout.close();
return 0;
}