Cod sursa(job #2892684)

Utilizator teo1496Teodor Juravlea teo1496 Data 23 aprilie 2022 10:38:18
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;

vector<int> v;
int n, k, T, C, maxim, i, x, crt, s;

int main(){
    ifstream fin("transport.in");
    ofstream fout("transport.out");

    fin >> n >> k;
    for(i = 0; i < n; ++i){
        fin >> x;
        v.push_back(x);
        T += v[i];
        maxim = max(maxim, v[i]);
    }
 
    int left = maxim, right = T;
    while(left < right){
        C = (left + right) / 2;
        crt = 1;
        s = 0;
        for(i = 0; i < n; ++i){
            s += v[i];
            if(s > C){
                ++crt;
                s = v[i];
            }
        }
        if(crt <= k)
            right = C;
        else left = C + 1;
    }

    fout << right;
    
    fin.close();
    fout.close();
    return 0;
}