Cod sursa(job #2541005)

Utilizator PetruAndreiPopazu Petru Andrei PetruAndrei Data 7 februarie 2020 22:11:57
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main()

{
    int n,nr,a[16000],i,st=0,dr=0,cap=0;
    fin>>n>>nr;
    for(i=0; i<n; i++){
        fin>>a[i];
        if(st<a[i])
            st=a[i];
    }
    dr= 256000000;
    while(st<=dr){
        int mij=(st+dr)/2;
        int k=1,l=0;
        for(i=0; i<n; i++){
            l=l+a[i];
            if(l>mij){
                k++;
                l=a[i];
            }
        }
        if(k>nr){
            st=mij+1;
            break;
        }
        else{
            dr=mij;
            cap=mij;
        }
    }
    fout<<cap;
    return 0;

}