Cod sursa(job #275972)
#include<math.h>
#include<fstream>
#define MAXINT 32767
#define GMAX 5001
#define WMAX 1001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int a[WMAX][GMAX],w,cost,n,E;
void format()
{
for(int i=0;i<=n;i++)
for(int j=0;j<=E;j++)
a[i][j]=MAXINT;
}
void ReadData()
{
f>>n>>E;
format();
for(long i=1;i<=n;i++)
{
f>>w>>cost;
for(int j=1;j<=E;j++)
{
if(j<=w)
a[i][j]=min(cost,a[i-1][j]);
else
a[i][j]=min(a[i-1][j],a[i-1][j-w]+cost);
}
}
}
int main()
{
ReadData();
if(a[n][E]!=MAXINT)
g<<a[n][E];
else
g<<-1;
f.close();
g.close();
return 0;
}