Pagini recente » Cod sursa (job #2083757) | Cod sursa (job #43866) | Cod sursa (job #2147885) | Cod sursa (job #1976984) | Cod sursa (job #602204)
Cod sursa(job #602204)
#include<fstream>
using namespace std;
#define Infinit 1000000000
signed long g,w,eg[1002],cg[1002],costmin[1002][5002];
signed long minim(signed long x,signed long y)
{
if (x<y) return x;
else return y;
}
int main(void)
{
signed long min;
ifstream fin("energii.in");
ofstream fout("energii.out");
fin >> g; fin >> w;
for (int i=1;i<=g;i++)
{
fin>>eg[i]; fin>>cg[i];
}
fin.close();
for(int i=0;i<=g;i++)
for(int j=0;j<=w;j++)
costmin[i][j]=Infinit;
for(int i=1;i<=g;i++)
for(int j=1;j<=w;j++)
{
if(eg[i]<=j) costmin[i][j]=minim(costmin[i-1][j],costmin[i-1][j-eg[i]]+cg[i]);
else
costmin[i][j]=minim(costmin[i-1][j],cg[i]);
}
if (costmin[g][w]==Infinit)fout<<"-1";
else fout<<costmin[g][w];
fout.close();
return 0;
}