Cod sursa(job #1726126)

Utilizator tudoroprisTudor Opris tudoropris Data 7 iulie 2016 13:03:14
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

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

int l,r,v[17001],k,n,m,rez,maxim;

bool fit(int x)
{
    int camion_fmm=0,i,s=0;
    for(i=1; i<=n; i++)
    {
        if(s+v[i]<=x)
        {
            s+=v[i];
        }
        else
        {
            s=v[i];
            camion_fmm++;
        }
    }
    return(camion_fmm<k);
}

int main()
{
    int i,s=0;
    in>>n>>k;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
        s+=v[i];
        if(v[i]>maxim)maxim=v[i];
    }
    l=maxim;
    r=s;
    while(l<=r)
    {
        m=(l+r)/2;
        if(fit(m))
        {
            r=m-1;
            rez=m;
        }
        else
        {
            l=m+1;
        }
    }
    out<<rez;
}