Pagini recente » Cod sursa (job #2778149) | Cod sursa (job #2530821) | Cod sursa (job #250246) | Cod sursa (job #1137142) | Cod sursa (job #2700653)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 1000
#define WMAX 5000
int e[NMAX+1], c[NMAX+1];
int cost[WMAX+1];
int main() {
FILE *fin, *fout;
int n, w, se, sc, i, j, g;
fin = fopen( "energii.in", "r" );
fscanf( fin, "%d%d", &n, &w );
se = sc = 0;
for( i = 1; i <= n; i++ ) {
fscanf( fin, "%d%d", &e[i], &c[i] );
se += e[i];
sc += c[i];
}
fclose( fin );
fout = fopen( "energii.out", "w" );
if( se < w )
fprintf( fout, "-1\n" );
else {
for( i = 1; i <= w; i++ )
cost[i] = 1000000l;
for( i = 1; i <= n; i++ ) {
for( j = 0; j <= w; j++ ) {
g = j + e[i] > w ? w : j + e[i];
if( cost[g] > cost[j] + c[i] )
cost[g] = cost[j] + c[i];
}
}
fprintf( fout, "%d\n", cost[w] );
}
fclose( fout );
return 0;
}