Cod sursa(job #1707273)

Utilizator sabinnituSabin Nitu sabinnitu Data 24 mai 2016 18:41:22
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

int n, t, v[16001];

bool sePoate( int k ) {
    int i, c=k, nr=1;

    for( i=1; i<=n; i++ ) {
        if( v[i] > c ) {
            c = k;
            nr++;
        }
        if( v[i] > c )
            return false;
        if( nr > t )
            return false;

        c -= v[i];
    }
    return true;
}

int main()
{
    ifstream in("transport.in");
    ofstream out("transport.out");

    int i, k, pas;

    in >> n >> t;

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

    pas = ( 1 << 29 );
    i=0;
    while( pas != 0 ) {
        if( !sePoate(i+pas) )
            i += pas;
        pas /= 2;
    }
    out << 1+i;

    return 0;
}