Pagini recente » Cod sursa (job #2396541) | Cod sursa (job #623529) | Cod sursa (job #1957917) | Cod sursa (job #1493934) | Cod sursa (job #531751)
Cod sursa(job #531751)
#include<iostream>
#include<fstream>
#define MIN(a,b)((a)<(b) ? (a):(b))
using namespace std;
int nrg, w, eg[1001], cg[1001], a[1001][5001], i, j, tot=0;
int main()
{
ifstream cn("energii.in");
ofstream co("energii.out");
cn>>nrg;
cn>>w;
for(i=1;i<=nrg;i++)
cn>>eg[i]>>cg[i];
for(i=1;i<=nrg;i++)
tot+=eg[i];
if(tot<w)
{
co<<"-1";
return 0;
}
for(i=1;i<=w;i++)
a[0][i]=1000000;
for(i=1;i<=nrg;i++)
{
for(j=1;j<=w;j++)
{
if(eg[i]>j)
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]);
}
}
co<<a[nrg][w];
cn.close();
co.close();
return 0;
}