Pagini recente » Cod sursa (job #2365147) | Cod sursa (job #2758259) | Cod sursa (job #1453990) | Cod sursa (job #2308581) | Cod sursa (job #2289683)
#include <fstream>
#define inf 10001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,d[1010][5010],w;
struct energii
{
int energie,pret;
}v[1003];
int main()
{
f >> n >> w;
for(int i=1; i<=n; i++) f >> v[i].energie >> v[i].pret;
for(int i=0; i<=n; i++)
for(int j=0; j<=w; j++) d[i][j] = inf;
for(int i=1; i<=n; i++)
for(int j=1; j<=w; j++) {
if(j-v[i].energie <= 0) d[i][j] = min(d[i-1][j],v[i].pret);
else d[i][j] = min(d[i-1][j],d[i-1][j-v[i].energie]+v[i].pret);
}
if(d[n][w]==inf) g << -1 << '\n';
else g << d[n][w] << '\n';
return 0;
}