Cod sursa(job #2219322)

Utilizator RaduPatraRadu Patra RaduPatra Data 8 iulie 2018 14:06:24
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
int cautbin (int v[], int st, int dr, int transmax,int n) ///
{
    int sum=0,nrtrans=0,mij,i,sol,ok=0;
    while(dr>=st)///7-20
    {
        mij=(st+dr)/2;///13
        sum=0;nrtrans=0;
        for (i=1; i<=n; i++) ///7 3 2 3 1 4
        {
            sum+=v[i];
            if (sum>=mij)
            {
                nrtrans++;
                sol=sum;
                sum=0;
            }
            if (nrtrans<=transmax && nrtrans!=0)
                ok=1;
            else ok=0;
        }
        if (sol>mij && ok==1)
            dr=mij-1;
        ///else st=mij+1;
    }
    return sol;
}
int main()
{
    int n,k,v[16000],maxi=-1,sum=0,i;
    in>>n>>k;

    for (i=1; i<=n; i++)
    {
        in>>v[i];
        if (v[i]>maxi)
            maxi=v[i];
        sum+=v[i];
    }

    out<<cautbin(v,maxi,sum,k,n);
    return 0;
}