Cod sursa(job #2487388)

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

using namespace std;

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

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, d = 1, s = 0;
        for(int i = 1; i <= N; ++i) {
            s += v[i];
            if(s > volum) d++, s = v[i];
        }
        (d <= K) ? r = volum - 1, ans = volum : l = volum + 1 ;
    }
    fout << ans;
}