Cod sursa(job #2924379)

Utilizator Andrei08Petcu Andrei Vlad Andrei08 Data 1 octombrie 2022 11:20:29
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001];
int main(){
    int n,k,i,maxi=-1,s=0,st,dr,mij,ras,nr_duceri;
    fin>>n>>k;
    for (i=1;i<=n;i++){
        fin>>v[i];
        if (v[i]>maxi)
            maxi=v[i];
        s+=v[i];
    }
    st=maxi;
    dr=s;
    while (st<=dr){
        mij=(st+dr)/2;
        s=0;
        nr_duceri=1;
        for (i=1;i<=n;i++){
            if (s+v[i]<=mij)
                s+=v[i];
            else
                s=v[i],nr_duceri++;
        }
        if (nr_duceri>k)
            st=mij+1;
        else
            ras=mij,dr=mij-1;
    }
    fout<<ras;
    return 0;
}