Cod sursa(job #3142109)

Utilizator raducostacheRadu Costache raducostache Data 19 iulie 2023 11:44:44
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

int n, k, v[16005];

bool verif(int c) {
    int s = 0, nrtrans = 0;
    for (int i = 1; i <= n; ++i) {
        if (s + v[i] <= c)
            s += v[i];
        else {
            if (v[i] > c)
                return 0;
            s = v[i];
            ++nrtrans;
        }
    }
    if (s > 0)
        ++nrtrans;
    return nrtrans <= k;
}

int main() {
    ifstream cin("transport.in");
    ofstream cout("transport.out");
    cin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        cin >> v[i];
    }
    int st = 1;
    int dr = 256000000;

    while (st <= dr) {
        int m = (st + dr) / 2;
        if (verif(m))
            dr = m - 1;
        else
            st = m + 1;
    }
    cout << st;
}