Pagini recente » Cod sursa (job #839398) | Cod sursa (job #2348139) | Cod sursa (job #1294488) | Cod sursa (job #989094) | Cod sursa (job #2699228)
#include <stdio.h>
#define MAX_N 1000
#define MAX_G 10000000
int e[MAX_N], c[MAX_N], d[MAX_G + 1];
int main() {
FILE *fin, *fout;
int n, g, cost, i, j;
fin = fopen( "energii.in", "r" );
fscanf( fin, "%d%d", &n, &g );
g = -g;
cost = 0;
for ( i = 0; i < n; i++ ) {
fscanf( fin, "%d%d", &e[i], &c[i] );
g += e[i];
cost += c[i];
}
fclose( fin );
for ( i = 0; i < n; i++ ) {
for ( j = g; j >= e[i]; j-- )
d[j] = (d[j - e[i]] + c[i]) > d[j] ? (d[j - e[i]] + c[i]) : d[j];
}
fout = fopen( "energii.out", "w" );
fprintf( fout, "%d", g < 0 ? -1 : cost - d[g] );
fclose( fout );
return 0;
}