Cod sursa(job #2675190)

Utilizator crysstyanIacob Paul Cristian crysstyan Data 21 noiembrie 2020 11:04:08
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

int i,n,k,v[16002],maxim=-2000000000,s=0;

ifstream f("transport.in");

ofstream g("transport.out");

bool ok(int x)

{

    int cont=0,suma=0;



    for (i=1; i<=n; i++)

    if (suma + v[i] <= x )

    suma+=v[i];

    else

    {

        suma=v[i]; cont++;

    }



    if (cont<=k)

    return 1;

    else return 0;

}



int main ()

{

    f>>n>>k;



    for (i=1; i<=n; i++)

    {

        f>>v[i];

        s+=v[i];

        if (v[i]>=maxim) maxim=v[i];



    }

    int st=maxim,dr=s,med;



    while (st<=dr)

    {

       med=(st+dr)/2;

       if (ok(med)==1)

       dr=med-1;

       else

       st=med+1;



    }

    g<<med;

    return 0;

}