Cod sursa(job #2683056)

Utilizator ioana0211Ioana Popa ioana0211 Data 10 decembrie 2020 12:40:51
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n, k;
long long v[16010], sum;
int verif(long long c)
{
    long long transp=1, s_crt=0;
    for(int i=1; i<=n; i++)
    {
        if(s_crt+v[i]<=c) s_crt+=v[i];
        else {
            s_crt=v[i];
            transp++;
        }
    }
    return transp;
}
long long caut_binar ()
{
    long long left=1, right=sum, mid;
    while(left<=right)
    {
        mid=left+(right-left)/2;
        if(verif(mid)<=k) right=mid-1;
        else left=mid+1;
    }
    return left;
}
int main()
{
    fin>>n>>k;
    for(int i=1; i<=n; i++){
        fin>>v[i];
        sum+=v[i];
    }
    fout<<caut_binar();
    return 0;
}