Cod sursa(job #1720750)

Utilizator BossuSmekeruStapanulocu1 BossuSmekeru Data 23 iunie 2016 13:48:32
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>

using namespace std;

int main()
{
    int n, k, c, i, j, *stiva, s = 0, max = 0, transporturi, suma;
    bool ok = 0;
    ifstream cin ("transport.in");
    ofstream cout ("transport.out");
    cin >> n >> k;
    stiva = new int[n + 1];

    for (i = 1; i <= n; i++){
        cin >> stiva[i];
        s = s + stiva[i];

        if (stiva[i] > max){
            max = stiva[i];
        }

    }

    if (s / k > max){
        c = s / k;
    }

    else {
        c = max;
    }

    for (i = c; i <= s; i++){
        transporturi = 0;
        j = 1;

        while (1){
            suma = 0;

            while (j <= n && suma + stiva[j] <= i){
                suma = suma + stiva[j];
                j++;
            }

            transporturi++;

            if (transporturi > k){
                break;
            }

            if (j > n){
                ok = 1;
                break;
            }

        }

        if (ok == 1){
            break;
        }

    }

    cout << i;
    return 0;
}