Cod sursa(job #2372631)

Utilizator riordache58Razvan Iordache riordache58 Data 7 martie 2019 10:20:35
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>
#include <fstream>

#define NMAX 16005

using namespace std;

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

long long int n , m , i , j , k , v[NMAX] , val , nr;

bool ver ( int val )
{
    long long aux;

    long long nr;

    int i;

    for ( i = 1 ; i <= n ; i ++ )
    {
        if ( v[i] > val )
        return 0;

        if ( v[i] > aux )
        {
            nr ++;

            aux = val;
        }

        aux -= v[i];
    }

    if ( nr <= k )
    return 1;
    return 0;
}

int cautare_binara ()
{
    long long int mij;

    long long l;

    long long r;

    int minn;

    mij = 0;

    l = 1;

    r = NMAX * NMAX;

    minn = -1;

    while ( l <= r )
    {
        mij = ( r - l ) / 2 + l;

        if ( ver ( mij ) != 0 )
        {
            minn = mij;

            r = mij - 1;
        }

        else
        l = mij + 1;
    }

    return minn;
}

int main()
{
    f >> n;

    f >> k;

    for ( i = 1 ; i <= n ; i ++ )
        f >> v[i];

    g << cautare_binara();

    return 0;
}