Pagini recente » Cod sursa (job #632353) | Cod sursa (job #2785847) | Cod sursa (job #2869366) | Cod sursa (job #2815869) | Cod sursa (job #2863818)
#include <bits/stdc++.h>
using namespace std;
int v[1601];
bool vrf(int c, int n, int ture) {
int s = 0, k = 0;
for(int i = 0; i < n; ++i) {
s = s + v[i];
if(s > c) {
s = v[i];
k++;
}
}
k++;
if(k > ture)
return false;
else
return true;
}
int main() {
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k;
cin >> n >> k;
int dr = 0, st = 0;
for(int i = 0; i < n; ++i) {
cin >> v[i];
dr = dr + v[i];
if(v[i] > st)
st = v[i];
}
int minc = dr;
while(st <= dr) {
int x = (st + dr) / 2;
if(vrf(x, n, k) == true) {
minc = x;
dr = x - 1;
}
else
st = x + 1;
}
cout << minc;
return 0;
}