Pagini recente » Cod sursa (job #1922135) | Cod sursa (job #901263) | Cod sursa (job #46158) | Cod sursa (job #1058627) | Cod sursa (job #111270)
Cod sursa(job #111270)
#include <stdio.h>
#define NMax 1001
#define GMax 15000
#define INF 1000000
long n, max, cmin[GMax], ener[NMax], cost[NMax];
int main()
{
long i, j, min;
FILE *f, *g;
f = fopen( "energii.in", "rt" );
g = fopen( "energii.out", "wt" );
fscanf( f, "%ld %ld", &n, &max );
for (i=0; i<n; i++)
fscanf( f, "%ld %ld", &ener[i], &cost[i] );
for (i=0; i<GMax; i++)
cmin[i] = INF;
cmin[0] = 0;
for (i=0; i<n; i++)
for (j=GMax-1; j>=0; j--)
if ( j + ener[i] < GMax && cmin[ j + ener[i] ] > cost[i] + cmin[j] )
cmin[ j + cost[i] ] = cost[i] + cmin[j];
min = INF;
for (i=max; i<GMax; i++)
if ( cmin[i] < min )
min = cmin[i];
if ( min == INF )
fprintf( g, "-1" );
else fprintf( g, "%ld", min );
return 0;
}