Cod sursa(job #3296618)

Utilizator mateivoican2006@gmail.comVoican Matei [email protected] Data 14 mai 2025 16:44:59
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <iostream>

using namespace std;

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

int nr_trasee(int v[16001], int n, long long val){
    int ct = 0, drumuri = 1;
    for(int i = 0; i < n; i++){
        ct += v[i];
        if(ct > val){
            ct = v[i];
            drumuri++;
        }
    }
    return drumuri;
}

int main(){

    int v[16001], n, k;
    long long sum = 0, maxim = 0;
    fin >> n >> k;

    for(int i = 0; i < n ; i++){
        fin >> v[i];
        sum += v[i];
        if(maxim < v[i])
            maxim = v[i];
    }


    long long st = maxim, dr = sum, mij, x;
    mij = (st+dr)/2;
    while(st <= dr){
        mij = (st+dr)/2;
        x = nr_trasee(v,n,mij);
        if(x > k){
            st = mij+1;
        }
        else{
            dr = mij-1;
        }
    }
    fout << st;
    fin.close();
    fout.close();
}