Pagini recente » Cod sursa (job #1165798) | Cod sursa (job #2563503) | Cod sursa (job #649061) | Cod sursa (job #125052) | Cod sursa (job #2863808)
#include <bits/stdc++.h>
using namespace std;
int v[1601];
bool vrf(int c, int n, int t) {
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 > t)
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(st < v[i])
st = v[i];
}
int minc = dr;
while(st <= dr) {
int x = (st + dr) / 2;
if(vrf(x, n, k)) {
minc = x;
dr = x - 1;
}
else
st = x + 1;
}
cout << minc;
return 0;
}