Pagini recente » Cod sursa (job #827032) | Cod sursa (job #1344662) | Cod sursa (job #2499672) | Cod sursa (job #2299168) | Cod sursa (job #602201)
Cod sursa(job #602201)
#include<fstream>
using namespace std;
signed long g,w,i,j,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 (i=1;i<=g;i++)
{
fin>>eg[i]; fin>>cg[i];
}
fin.close();
for(i=0;i<=g;i++)costmin[i][0]=-1;
for(i=0;i<=w;i++)costmin[0][i]=-1;
for(i=1;i<=g;i++)
for(j=1;j<=w;j++)
{
min=costmin[i-1][j];
if(min==-1)
if(costmin[i-1][j-eg[i]]==-1)
if(eg[i]>=j) min=cg[i];
else ;
else min=costmin[i-1][j-eg[i]]+cg[i];
else
if(costmin[i-1][j-eg[i]]==-1)
if(eg[i]>=j) min=minim(min,cg[i]);
else ;
else min=minim(min,costmin[i-1][j-eg[i]]+cg[i]);
costmin[i][j]=min;
}
if (costmin[g][w]==-1)fout<<"-1";
else fout<<costmin[g][w];
fout.close();
return 0;
}