Cod sursa(job #2426633)

Utilizator KarinaDKarina Dumitrescu KarinaD Data 28 mai 2019 22:02:57
Problema Transport Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
int main() {
    FILE *fin = fopen( "transport.in", "r" );
    FILE *fout = fopen(  "transport.out", "w" );
    int n, i, k, cc, c, p, capacitate=0, transporturi;
    fscanf( fin, "%d%d", &n, &k );
    int v[n];
    for ( i = 0; i < n; i ++ )
        fscanf( fin, "%d", &v[i] );
    p = 1;
    for ( i = 1; i < 28; i ++ )
        p *= 2;
    while ( p > 0 ) {
        c = p + capacitate;
        transporturi = cc = 0;
        for ( i = 0; i < n; i ++ ) {
            if ( v[i] > c )
                capacitate += p;
            if ( v[i] > cc ) {
                cc = c;
                transporturi ++;
            }
            cc -= v[i];
        }
        if ( transporturi > k )
            capacitate += p;
        p /= 2;
    }
    fprintf( fout, "%d", capacitate );
    return 0;
}