Cod sursa(job #1720745)

Utilizator BossuSmekeruStapanulocu1 BossuSmekeru Data 23 iunie 2016 13:40:14
Problema Transport Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>

using namespace std;

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

        while (1){
            suma = 0;

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

            transporturi++;

            if (transporturi > k){
                break;
            }

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

        }

        if (ok == 1){
            break;
        }

    }

    cout << i;
    return 0;
}