Cod sursa(job #2472021)

Utilizator eugen5092eugen barbulescu eugen5092 Data 11 octombrie 2019 22:01:19
Problema Transport Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream ci("transport.in");
ofstream cou("transport.out");
int n,k,st=1,dr=16001,mij,v[16001];


int verif (int cap)
{
    int nrtrans=1,cap1=0,i;
    for(i=1; i<=n; i++)
    {
        cap1+=v[i];
        if(cap1>cap)
        {
            cap1=v[i];
            nrtrans++;
        }

    }
    return nrtrans;

}



int cautarebin()
{
    int p,rez=0;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        p=verif(mij);
        if(p>k )
        {
            st=mij+1;
        }
        else
        {
            rez=mij;
            dr=mij-1;
        }

    }
    return rez;

}



int main()
{
    int i,x,mx=0;
    ci>>n>>k;
    for(i=1; i<=n; i++)
    {
        ci>>v[i];
        mx=max(v[i],mx);
    }
    st=mx;
    x=cautarebin();
    cou<<x;

}