Pagini recente » Cod sursa (job #710493) | Cod sursa (job #2884375) | Cod sursa (job #2737205) | Cod sursa (job #3247022) | Cod sursa (job #2710490)
#include <stdio.h>
#define INF 1e9
#define MAX 1000
int d[ 5000 ];
int g, w, n;
int min( int a, int b ){
if( a <= b )
return a;
return b;
}
int main()
{
FILE *fin = fopen( "energii.in", "r" );
fscanf( fin, "%d%d", &n, &w );
d[ 0 ] = 0;
for( int i = 1; i <= w; i++ )
d[ i ] = INF;
for( int i = 1; i <= n; i++ ){
int e, c;
fscanf( fin, "%d %d", &e, &c );
for( int i = w; i >= e; i-- )
if( d[ i - e ] != INF )
d[ i ] = min( d[ i ], d[ i - e ] + c );
for( int i = e - 1; i >= 0; i-- )
d[ i ] = min( d[ i ], c );
}
fclose( fin );
FILE *fout = fopen( "energii.out", "w" );
fprintf( fout, "%d\n", d[ w ] == INF ? -1 : d[ w ] );
fclose( fout );
return 0;
}