Cod sursa(job #2512202)

Utilizator MariaCarminaCretu Maria Carmina MariaCarmina Data 20 decembrie 2019 18:25:23
Problema Transport Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
/*
    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;
}