Cod sursa(job #2439032)

Utilizator ddeliaioanaDelia Dumitrescu ddeliaioana Data 14 iulie 2019 17:28:03
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>

using namespace std;

int n,k,v[16001];

int nrdr(int val)
{
    int i,nr=1,s=0;
    for(i=1;i<=n;i++)
    {
        if(s+v[i]<=val)
        s=s+v[i];
        else
        {
            nr++;
            s=v[i];
        }

    }
    return nr;
}


int cbin(int li,int ls)
{
    int m,cate,ul;

    while(li<=ls)
      {
         m=(li+ls)/2;
        cate=nrdr(m);
        if(cate<=k)
            {ls=m-1;
            ul=m;
            }
        else
            li=m+1;
    }
    return ul;
}


int main()
{
    int i,smax=0,maxi=0;
    cin>>n>>k;
    for(i=1; i<=n; i++)
    {
        cin>>v[i];
        smax=smax+v[i];
        if(v[i]>maxi)
            maxi=v[i];
    }
    cout<<cbin(maxi,smax);
    return 0;
}