Cod sursa(job #682645)
#include <fstream>
using namespace std;
#define dim 1010
#define inf 0x3f3f3f3f
struct energie
{
int x, y;
}v[dim];
int sol[dim*10];
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
int g, w, n,i;
float a, b;
fin>>g >>w;
n=g;
for( ; g;--g)
fin>>v[g].x >>v[g].y;
for(i=1;i<=dim*10;++i)
sol[i]=inf;
int maxim=0;
for(i=1;i<=n;++i)
for(int j=0;j<=dim*10;++j)
if(sol[j]!=inf)
if(j+v[i].x<=dim*10)
sol[j+v[i].x]=min(sol[j+v[i].x],v[i].y+j);
int raspuns=inf;
for(i=w;i<=dim*10;++i)
if(sol[i]!=inf)
raspuns=min(raspuns,sol[i]);
fout<<raspuns;
return 0;
}