Pagini recente » Cod sursa (job #1679781) | Cod sursa (job #1376935) | Cod sursa (job #1549094) | Cod sursa (job #501743) | Cod sursa (job #1092831)
#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( j + e[i] <= w && D[ j + e[i] ] > D[j] + c[i] )
D[j + e[i] ] = D[j] + c[i];
if( D[w] == (1<<30) )
D[w] = -1;
fprintf( g, "%d\n", D[w] );
fclose( f );
fclose( g );
return 0;
}