Pagini recente » Cod sursa (job #3200562) | Cod sursa (job #2380027) | Cod sursa (job #1350811) | Cod sursa (job #1350033) | Cod sursa (job #2512202)
/*
10 4
3 3 1 1 1 1 1 7 7 7
*/
#include <fstream>
#include <iostream>
using namespace std;
bool check_capacity(int capacity, int N, int K, int *v) {
int current_capacity = capacity;
int transport_count = 1;
for (int i = 0; i < N; ++i) {
if (v[i] <= current_capacity) {
current_capacity -= v[i];
} else {
transport_count++;
current_capacity = capacity;
current_capacity -= v[i];
}
}
if (transport_count > K) {
return false;
}
return true;
}
int main() {
int N, K;
ifstream fin("transport.in");
ofstream fout("transport.out");
fin >> N >> K;
int *v = new int[N];
for (int i = 0; i < N; ++i) {
fin >> v[i];
}
int capacity, max_saltea = 0;
for (int i = 0; i < N; ++i) {
if (max_saltea < v[i]) {
max_saltea = v[i];
}
}
capacity = max_saltea;
while (!check_capacity(capacity, N, K, v)) {
capacity++;
}
fout << capacity;
return 0;
}