Cod sursa(job #2487381)

Utilizator hoprixVlad Opris hoprix Data 4 noiembrie 2019 17:44:19
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

const int MAX = 16005;
int N, K, v[MAX], l, r;

int days(int volum) {
    int d = 1, s = 0;
    for(int i = 1; i <= N; ++i) {
        s += v[i];
        if(s > volum) d++, s = v[i];
    }
    return d;
}

int main() {
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin >> N >> K;
    for(int i = 1; i <= N; ++i)
        fin >> v[i], l = max(l, v[i]), r += v[i];
    int ans = r;
    while(l <= r) {
        int volum = (l + r) >> 1;
        (days(volum) > K) ? l = volum + 1 : r = volum - 1, ans = volum;
    }
    fout << ans;
}