Cod sursa(job #2223768)

Utilizator ichb_stefiGavra Stefan ichb_stefi Data 21 iulie 2018 14:48:43
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>

using namespace std;

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

const int NMAX = 16005;

int v[NMAX],n,k;

int nr_trans(int c)
{
    int vol=0,nrt=0;
    for(int i=1;i<=n;i++)
    {
        if(vol+v[i]<=c)
            vol+=v[i];
        else
        {
            nrt++;
            vol=v[i];

        }

    }
    if(vol!=0)
        nrt++;
    return nrt;
}

int main()
{
    int maxim = 0;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
        maxim=max(maxim, v[i]);
    }
    int st=maxim,dr=1000000000,mij=0,sol=0,nrt=0;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        nrt=nr_trans(mij);
        if(nrt<=k)
        {
            sol=mij;
            dr=mij-1;

        }
        else
        {
            st=mij+1;
        }
    }
    cout<<sol;
    return 0;
}