Cod sursa(job #2562729)

Utilizator Paul987650Solot Paul Paul987650 Data 29 februarie 2020 17:38:26
Problema Transport Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

std::ifstream cin("transport.in");
std::ofstream cout("transport.out");

int array[10001] = {};
int main()
{
    int n{}, k{}, cap{};
    int max{};
    cin >> n >> k;
    for(int i = 1; i <= n; i++){
        cin >> array[i];
        if(array[i] > max)
            max = array[i];
    }
    cap = max;
    bool ok = 0;
    while(!ok){
        int zile{}, i{1}, sum{};
        while(zile <= k && i <= n){
            if(sum + array[i] > cap){
                sum = 0;
                zile++;
            }
            else{
                sum += array[i];
                i++;
            }
            if(i == n && sum + array[i] < cap)
                zile++;
        }

        if(zile <= k)
            ok = 1;
        else
            cap++;
    }
    cout << cap;
}