Cod sursa(job #2120406)

Utilizator tiberiu392Tiberiu Ungurianu tiberiu392 Data 2 februarie 2018 13:54:31
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");

int rez,sum,nr,Max,vt,n,a[16005],k, i;

void cautbin()
{
    int st = Max;
    int dr = vt;
    int mj = 0;
    while( st <= dr )
    {
        mj = (st+dr)/2;
        k = 1;
        sum=0;
        for( i = 1; i <= n; i++)
        {

            if( sum+a[i] <= mj )
            sum+=a[i];
        else
        {
            k++;
            sum = a[i];
        }
    }
    if(nr < k )
        st = mj+1;
    else
    {
        dr = mj-1;
        rez = mj;
    }
    }

}
int main()
{
   f >> n >> nr;
   for( i = 1 ; i <= n ; i ++ )
   {
       f >> a[i];
       vt+= a[i];
       Max = max( a[i], Max);
   }
    cautbin();
    g << rez;

    return 0;
}