Cod sursa(job #1456655)

Utilizator xraven78Eduard Mihes xraven78 Data 1 iulie 2015 16:01:14
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

int ls,ld,mij,v[16000],i,j,k,aux,maxi,maxi2,nrtrans,n;

int main()
{
    f>>n>>k;
    for(i=1;i<=n ;++i )
    {
        f>>v[i];
        maxi2+=v[i];
        if(v[i]>maxi)
            maxi=v[i];
    }

    ls=maxi;
    ld=maxi2;
    while(ls<ld)
    {
        mij=(ls+ld)/2;

        for(i=1,aux=0,nrtrans=1;i<=n;++i )
        {
            if( aux+v[i]>mij)
            {
                aux=v[i];
                ++nrtrans;
            }
            else
            {
                aux+=v[i];
            }
        }

        if(nrtrans>k)
            ls=mij+1;
        else
            ld=mij;
    }


    g<<ld;

return 0;
}