Cod sursa(job #2278909)

Utilizator mariusn01Marius Nicoli mariusn01 Data 8 noiembrie 2018 18:06:12
Problema Transport Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

int v[16001]; /// capacitatile saltelelor
int n, maxim, suma, i, k, tr, cap, ramas;

ifstream fin ("transport.in");
ofstream fout("transport.out");

int main () {
    fin>>n>>k;
    for (i=1;i<=n;i++) {
        fin>>v[i];
        suma += v[i];
        if (v[i] > maxim)
            maxim = v[i];
    }

    for (cap = maxim; cap <= suma; cap++) {
        /// numar cate transporturi fac sa duc totul cu un camion de capacitate cap
        tr = 1; /// ramas = cat mai pot incarca in trasportul curent
        ramas = cap - v[1]; /// am incarcat prima saltea
        for (i=2;i<=n;i++)
            if (v[i] <= ramas)
                ramas -= v[i];
            else {
                tr++;
                ramas = cap-v[i];
            }

        if (tr <= k) {
            fout<<cap;
            return 0;
        }

    }

    return 0;
}