Pagini recente » Cod sursa (job #2774780) | Cod sursa (job #1286730) | Cod sursa (job #3041642) | Cod sursa (job #3269271) | Cod sursa (job #2289681)
#include <fstream>
#define inf 10001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,d[1010][5010],w;
bool p;
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<=1; 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[p][j] = min(d[!p][j],v[i].pret);
else d[p][j] = min(d[!p][j],d[!p][j-v[i].energie]+v[i].pret);
}
p = !p;
if(d[!p][w]==inf) g << -1 << '\n';
else g << d[!p][w] << '\n';
return 0;
}