Cod sursa(job #1092828)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 27 ianuarie 2014 14:44:24
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#define MAXW 5001
#define MAXG 1001

int e[MAXG], c[MAXG], D[MAXW];

int main () {
    FILE *f, *g;
    f = fopen( "energii.in", "r" );
    g = fopen( "energii.out", "w" );

    int G, w;

    fscanf( f, "%d%d", &G, &w );

    for( int i = 0 ; i < G ; ++i )
        fscanf( f, "%d%d", &e[i], &c[i] );

    for( int i = 1; i <= w; ++i)
        D[i] = (1<<30);

    for( int i = 0 ; i < G ; ++i )
        for( int j = w ; j >= 0 ; --j )
            if( D[ j + e[i] ] > D[j] + c[i] )
                D[j + e[i] ] = D[j] + c[i];

    fprintf( g, "%d\n", D[w] );

    fclose( f );
    fclose( g );
    return 0;
}