Cod sursa(job #3227321)

Utilizator Seba1030Banescu Stefan Sebastian Seba1030 Data 29 aprilie 2024 15:52:26
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

int v[16005], n;

bool verif( int cap, int k ) {
    int i, drum = 0, s = 0;
    for( i = 0; i < n; i++ ) {
        s += v[i];
        if( s > cap ){
            drum++;
            s = v[i];
        }
    }
    if( drum <= k ) {
        return 1;
    }
    else {
        return 0;
    }
}

int main() {
    ifstream fin ( "transport.in" );
    ofstream fout ( "transport.out" );
    int k, c, st, dr, mij, i, j, sum = 0, last = -1;
    fin >> n >> k;
    for( i = 0; i < n; i++ ) {
        fin >> v[i];
        sum += v[i];
    }
    st = 1;
    dr = sum;
    while( st <= dr ) {
        mij = ( st + dr ) / 2;
        if( verif( mij, k ) ) {
            last = mij;
            dr = mij - 1;
        }
        else {
            st = mij + 1;
        }
    }
    fout << last;

    return 0;
}