Cod sursa(job #3348863)

Utilizator prares06Papacioc Rares-Ioan prares06 Data 24 martie 2026 14:50:23
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>

std::ifstream fin("transport.in");
std::ofstream fout("transport.out");

int n, k;
std::vector<int> v;

bool check(int m){
    int s = 0, cnt = 1;
    for(int i = 0; i < n; ++i){
        if(s + v[i] <= m){
            s += v[i];
        }
        else{
            s = v[i];
            ++cnt;
        }
    }
    return cnt <= k;
}

int main(){
    fin >> n >> k;

    v.resize(n);
    for(int& x : v)
        fin >> x;

    int st = 1, dr = 16000 * 16000 + 1, poz = -1;
    while(st <= dr){
        int m = (st + dr) / 2;
        if(check(m)){
            dr = m - 1;
            poz = m;
        }
        else{
            st = m + 1;
        }
    }
    fout << poz;
}