Cod sursa(job #2426586)

Utilizator daria_stoianStoian Daria Alexandra daria_stoian Data 28 mai 2019 19:51:12
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>

int v[16000];

int main(){
    FILE *fin, *fout;
    fin = fopen( "transport.in", "r" );
    fout = fopen(  "transport.out", "w" );
    int n, i, k, j, nrt, cc, c, p, r, ok;
    fscanf( fin, "%d%d", &n, &k );
    for ( i = 0; i < n; i ++ ){
        fscanf( fin, "%d", &v[i] );
    }
    p = 1;
    for ( i = 1; i < 28; i ++ )
        p *= 2;
    r = 0;
    while ( p > 0 ){
        c = p + r;
        ok = 0;
        nrt = cc = 0;
        for ( i = 0; i < n; i ++ ){
            if ( v[i] > c ){
                ok = 1;
            }
            if ( v[i] > cc ){
                cc = c;
                nrt ++;
            }
            cc -= v[i];
        }
        if ( nrt > k ){
            ok = 1;
        }
        if ( ok == 1 ){
            r += p;
            //printf( "%d %d\n", r, p );
        }
        p /= 2;

    }
    fprintf( fout, "%d", r + 1 );
    fclose( fin );
    fclose( fout );
    return 0;
}