Pagini recente » Cod sursa (job #1126992) | Cod sursa (job #210383) | Cod sursa (job #1920584) | Cod sursa (job #192970) | Cod sursa (job #531739)
Cod sursa(job #531739)
#include<cstdio>
#define DN 1001
#define MIN(a,b) ((a)<(b)? (a):(b))
#define LUNG 9999
int main()
{
FILE *f=fopen("energii.in", "r");
FILE *g=fopen("energii.out", "w");
int G, w, eg[1001], cg[1001], i, j, a[DN][DN], tot;
fscanf(f, "%d %d", &G, &w);
for(i=1; i<=G; i++)
{
fscanf(f, "%d %d", &eg[i], &cg[i]);
tot=tot+eg[i];
}
if(tot<w)
{
fprintf(g, "-1");
return 0;
}
for(j=1; j<=w; j++)
a[0][j]=LUNG;
for(i=1; i<=G; i++)
for(j=1; j<=w; j++)
{
if(j<eg[i])
a[i][j]=MIN(a[i-1][j], cg[i]);
else
a[i][j]=MIN(a[i-1][j], a[i-1][j-eg[i]]+cg[i]);
}
fprintf(g, "%d", a[G][w]);
return 0;
}