Cod sursa(job #2437368)

Utilizator popesculucaPopescu Luca popesculuca Data 9 iulie 2019 13:37:45
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream   in("transport.in");
ofstream out("transport.out");
int n , v[100000] , k , mid , vmin;
int s ;
bool verif (int vmin)
{
    int i ;
    int vc=0 , nrtransp=1 , vp , s=0;
    vp=0;

    for (i=1 ; i<=n ; i++)
    {
        if (v[i]+s<=vmin)
            s+=v[i];
            else
        if (v[i]+s>vmin)
        {
            nrtransp++;
            s=v[i];
        }

    }

    return (nrtransp<=k);

}

int cautbin(int l , int r )
{
    int mid;

    while (l<r)
    {
        mid=l+r;
        mid/=2;
        if ( verif(mid)  )
        {
            vmin=mid;
            r=mid;
        }
        else
        {
            l=mid+1;
        }

    }
return vmin;



}

int main()
{

int i , nr=0;
in>>n>>k;
for (i=1 ; i<=n ; i++)
{
    in>>v[i];
    nr+=v[i];
}
vmin=v[n];
out<<cautbin(1 , nr );
return 0;

}