Cod sursa(job #2772523)

Utilizator RazvanLazar2004Lazar Razvan Gabriel RazvanLazar2004 Data 1 septembrie 2021 14:39:46
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
using namespace std;
long long int v[16000];
int main(){
    ifstream in("transport.in");
    ofstream out("transport.out");
    long long int n,k,st=0,dr=0,raspuns;
    in>>n>>k;
    for(long long int i=1;i<=n;i++){
        in>>v[i];
        dr+=v[i];
        if(st<v[i]){
            st=v[i];
        }
    }
    while(st+1<dr){
        long long int mij=(st+dr)/2,l=0,p=0;
        for(long long int i=1;i<=n;i++){
            if(l+v[i]<=mij){
                l+=v[i];
            }else{
                l=v[i];
                p++;
            }
        }
        p++;
        if(p<k){
            dr=mij;
        }else{
            if(p==k){
                raspuns=mij;
                dr=mij;
            }else{
                st=mij;
            }
        }
    }
    out<<raspuns;
}