Cod sursa(job #2263341)

Utilizator SmitOanea Smit Andrei Smit Data 18 octombrie 2018 16:59:15
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;

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

int n,k,a[16001];

bool OK(int C)
{
    int i,sp_liber,nrtr=0;
    for(i=1;i<=n; )
    {
        sp_liber=C;
        while(sp_liber>=a[i] && i<=n)
        {
            sp_liber-=a[i];
            i++;
        }
        nrtr++;
    }

    if(nrtr<=k) return true;
    return false;
}

int main()
{
    int i,suma=0,maxim=0,c;
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        suma=suma+a[i];
        if(a[i]>maxim)
            maxim=a[i];
    }

    ///Caut Binar cel mai mic camion care poate cara saltelele
    ///in maxim k drumuri
    int st,dr,mij,sol;
    st=maxim;
    dr=suma;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(OK(mij))
        {
            sol=mij;
            dr=mij-1;
        }
        else
            st=mij+1;
    }
    fout<<sol<<"\n";
    return 0;
}