Cod sursa(job #1176077)

Utilizator hrazvanHarsan Razvan hrazvan Data 25 aprilie 2014 16:04:49
Problema Energii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#define G_MAX 1000
#define W_MAX 5000
int e[ G_MAX ], c[ G_MAX ], rucs[ W_MAX ];

int trans ( int a ){
    if ( a < 0 )    return 0;
    return a;
}

int main()
{
    FILE *in = fopen ( "energii.in", "r" );
    int g, w;
    fscanf ( in, "%d%d", &g, &w );
    int i;
    for ( i = 0; i < g; i++ ){
        fscanf ( in, "%d%d", &e[ i ], &c[ i ] );
    }
    fclose ( in );
    rucs[ 0 ] = 1;
    int j;
    for ( i = 0; i < g; i++ ){
        for ( j = w; j > 0; j-- ){
            if ( rucs[ trans( j - e[ i ] ) ] != 0 ){
                rucs[ j ] = c[ i ] +  rucs[ trans( j - e[ i ] ) ];
            }
        }
    }
    FILE *out = fopen ( "energii.out", "w" );
    fprintf ( out, "%d", rucs[ w ] - 1 );
    fclose ( out );
    return 0;
}