Pagini recente » Cod sursa (job #1455065) | Cod sursa (job #1120256) | Cod sursa (job #1869815) | Cod sursa (job #1089678) | Cod sursa (job #2662391)
#include <bits/stdc++.h>
using namespace std;
#define x1 "transport.in"
#define x2 "transport.out"
ifstream in(x1);
ofstream out(x2);
int v[16000], n, i, k, r = 0, pas = 1 << 28, maxi;
int check(int nr) {
int c = 0 , ans = 0;
if(maxi > nr)
return 0;
for(int i = 0; i < n; i++) {
ans += v[i];
if(ans > nr){
c++;
ans = v[i];
}
}
return (c < k);
}
int main() {
in >> n >> k;
for(i = 0; i < n; i++) {
in >> v[i];
maxi = max(maxi, v[i]);
}
while(pas) {
if(!check(pas + r))
r += pas;
pas /= 2;
}
out << r + 1;
return 0;
}