Pagini recente » Cod sursa (job #815626) | Cod sursa (job #755296) | Cod sursa (job #811752) | Cod sursa (job #1097312) | Cod sursa (job #3166463)
#include <fstream>
#define NMAX 16005
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, k, v[NMAX];
bool verif(int d) {
int sum = 0, nrt = 1;
for (int i = 1; i <= n; ++i) {
if (v[i] > d)
return 0;
if (sum + v[i] <= d) {
sum += v[i];
}
else {
nrt++;
sum = v[i];
}
}
if (nrt <= k)
return true;
return false;
}
int main() {
f >> n >> k;
int dr = 0;
for (int i = 1; i <= n; ++i) {
f >> v[i];
dr += v[i];
}
int st = 1;
while (st <= dr) {
int m = (st + dr) / 2;
if (verif(m))
dr = m - 1;
else
st = m + 1;
}
g << st;
return 0;
}