Pagini recente » Cod sursa (job #836658) | Cod sursa (job #2471879) | Cod sursa (job #2425744) | Cod sursa (job #510833) | Cod sursa (job #1711568)
#include <fstream>
#define INF 9999999
#define GMAX 1005
#define WMAX 5005
#define MIN(a,b) (((a)<(b))?(a):(b))
using namespace std;
int d[GMAX][WMAX], i ,j, c[GMAX], e[GMAX], mn = 99999999, g1, w, cmax;
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>g1>>w;
for(i=1;i<=g1;i++)
{
f>>e[i];
f>>c[i];
if(cmax<e[i])
cmax=e[i];
}
for(i=0;i<=g1;i++)
for(j=0; j<=w; j++)
d[i][j] = INF;
for(i=0;i<=g1;i++)
d[i][0]=0;
for(i=1;i<=g1;i++)
for(j=1;j<=w;j++)
{
if(e[i]<=j)
d[i][j] = MIN(d[i-1][j-e[i]]+c[i], d[i-1][j]);
}
for(i=1;i<=g1;i++)
if(e[i]>w && c[i]<d[g1][w])
d[g1][w]=c[i];
if(d[g1][w]==INF)
g<<-1;
else
g<<d[g1][w];
}