Cod sursa(job #2923087)

Utilizator MAlex2019Melintioi George Alexandru MAlex2019 Data 11 septembrie 2022 15:07:52
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

int v[16000], n, k;

bool solutie(int c) {
    int i, cnt, camion;
    camion = cnt = 0;
    for (i = 0; i < n; i++) {
        camion += v[i];
        if (camion > c) {
            camion = v[i];
            cnt++;
        }
    }
    cnt++;
    return cnt <= k;
}

int cautare(int st, int dr) {
    if (st == dr)
        return solutie(st) == true ? st : -1;
    int mij = (st + dr)/2;
    if (solutie(mij))
        return cautare(st, mij);
    return cautare(mij + 1, dr);
}

int main()
{
    ios_base::sync_with_stdio(false);
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    int i, s;

    fin >> n >> k;
    for (i = 0; i < n; i++) {
        fin >> v[i];
        s += v[i];
    }

    fout << cautare(1, s);

    return 0;
}