Pagini recente » Cod sursa (job #90568) | Cod sursa (job #794694) | Cod sursa (job #131999) | Cod sursa (job #2750630) | Cod sursa (job #2700362)
#include <stdio.h>
#define GMAXX 1000
#define WMAXX 5001
int v[WMAXX + 1];
int main()
{
FILE *fin, *fout;
int g, w, energie, cost, i, j;
fin = fopen( "energii.in", "r" );
fout = fopen( "energii.out", "w" );
fscanf( fin, "%d%d", &g, &w );
for ( i = 1; i <= w; i++ ) { /// bordare
v[i] = WMAXX * GMAXX;
}
for ( i = 1; i <= g; i++ ) {
fscanf( fin, "%d%d", &energie, &cost );
for ( j = w; j > energie; j-- ) {
if ( v[j] > v[j - energie] + cost ) {
v[j] = v[j - energie] + cost;
}
}
for ( j = 1; j <= energie; j++ ) {
if ( v[j] > cost ) {
v[j] = cost;
}
}
}
if ( v[w] != WMAXX * GMAXX )
fprintf( fout, "%d", v[w] );
else {
fputc( '-', fout );
fputc( '1', fout );
}
fclose( fin );
fclose( fout );
return 0;
}