Cod sursa(job #711245)
#include <iostream>
#include <fstream>
#define INF 11000
using namespace std;
int nr,w,a[1002][5002];
int min(int a,int b)
{
if(a<b) return a;
else return b;
}
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
fin>>nr>>w;
for(int i=0;i<=w;i++)
a[0][i]=INF;
for(int i=1;i<=nr;i++)
{
int en,co;
fin>>en>>co;
for(int j=1;j<=w;j++)
{
if(j<=en) a[i][j]=min(co,a[i-1][j]);
else a[i][j]=min(a[i-1][j],a[i-1][j-en]+co);
}
}
if(a[nr][w]==INF)
fout<<-1;
else
fout<<a[nr][w];
return 0;
}