Cod sursa(job #2794233)

Utilizator RohantayronEric Stanciu Matei Rohantayron Data 4 noiembrie 2021 15:25:15
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
int v[500001];
int main()
{
    ifstream cin("transport.in");
    ofstream cout("transport.out");
    int n,k,i,maxi=0,l,nrd,val,dr,st,mij;
    long long s=0;
    cin>>n>>k;
    for(i=1;i<=n;i++){
        cin>>v[i];
        if(v[i]>maxi)
            maxi=v[i];
            s=s+v[i];
    }
    dr=s;
    st=maxi;
    while(st<=dr){
        mij=(st+dr)/2;
        l=0;
        nrd=1;
        for(i=1;i<=n;i++){
            if(l+v[i]<=mij){
                l=l+v[i];
            }
            else{
                nrd++;
                l=v[i];
            }
        }
       // if(l!=0)
        //    nrd++;
        if(nrd>k){
            st=mij+1;
        }
        else{
            val=mij;
            dr=mij-1;
        }
    }
    cout<<val;
    return 0;
}