Pagini recente » Cod sursa (job #2963438) | Cod sursa (job #2796542) | Cod sursa (job #1362616) | Cod sursa (job #1798038) | Cod sursa (job #275959)
Cod sursa(job #275959)
#include<stdio.h>
#define nmax 1001
#define wmax 5001
#define inf 32000
int a[nmax][wmax], n, w;
FILE *f, *g;
int min(int x, int y)
{ if(x<y)
return x;
else
return y;
}
int main()
{ int i, j, en, c;
f=fopen("energii.in", "r");
g=fopen("energii.out", "w");
fscanf(f, "%d%d", &n, &w);
for(i=1; i<=w; i++)
a[0][i]=inf;
for(i=1; i<=n; i++)
{ fscanf(f, "%d%d", &en, &c);
for(j=1; j<=w; j++)
if(j<=en)
a[i][j]=min(c, a[i-1][j]);
else
a[i][j]=min(a[i-1][j], (a[i-1][j-en]+c));
}
if(a[n][w]==inf)
fprintf(g, "-1\n");
else
fprintf(g, "%d\n", a[n][w]);
fclose(g);
return 0;
}