Cod sursa(job #2743089)

Utilizator ana_madalina_18Radu Ana Madalina ana_madalina_18 Data 22 aprilie 2021 15:50:45
Problema Transport Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;
int capacitate_min,n,k,mij,val;
int v[16009];
bool verif(int x,int nr_trans)
{
    int i=1;
    while(nr_trans!=0 && i<=n)
    {
        int sum=0;
        while(sum<=x && i<=n)
        {
            sum+=v[i];
            i++;
        }
        nr_trans--;
        if(sum>x)
        {
            i--;
            sum-=v[i];
        }

    }
    if(i==n+1)
        return 1;
    else
        return 0;
}
void caut_binar_capacitate(int st,int dr)
{
    if(st<=dr)
    {
        mij=(st+dr)/2;
        if(verif(mij,k))
            {
                val=mij;
                caut_binar_capacitate(st,mij-1);
            }
        else
            caut_binar_capacitate(mij+1,dr);
    }
}
int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin>>n>>k;
    int i;
    for(i=1; i<=n; i++)
    {
        fin>>v[i];
    }
    caut_binar_capacitate(1,300000);
    fout<<val;
    return 0;
}