Cod sursa(job #3282780)

Utilizator 9onelostSendrescu Tudor-Gabriel 9onelost Data 6 martie 2025 19:43:52
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,k;

int v[DIM], sp[DIM];

bool verificare(int val){

    int transports = 1 , curr_sum=0;

    for(int i=1;i<=n;i++){

        if(curr_sum + v[i] > val){

            transports++;

            curr_sum = 0;

        }

        curr_sum+=v[i];

        if(transports > k){

            return false;

        }

    }

    return true;

}

int bn_rez(int st,int dr){

    int mij,ret=-1;

    while(st<=dr){

        mij = (st+dr)/2;

        if(verificare(mij)){

            ret=mij;

            dr=mij-1;

        }
        else{

            st=mij+1;

        }

    }

    return ret;

}



int main(){

    fin >> n >> k;

    for(int i=1;i<=n;i++){

        fin >> v[i];

    }

    for(int i=1;i<=n;i++){

        sp[i]=sp[i-1] + v[i];

    }

    int st=sp[1];
    int dr=sp[n];

    fout << bn_rez(st,dr);

    return 0;
}