Cod sursa(job #651942)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,i,v[10005],e,c,s,t,qq,v2[10005];
int main()
{
f>>n;
f>>s;
for(t=1; t<=n; t++)
{
f>>e>>c;
for(i=1; i<=s; i++) if (v[i]!=0)
{
if (v[i+e]!=0)
v2[i+e]=min(v[i+e],v[i]+c);
else v2[i+e]=v[i]+c;
}
if (v[e]==0) v2[e]=c;
else
v2[e]=min(v[e],c);
for(i=1;i<=10000;i++) v[i]=v2[i];
}
qq=333333;
for(i=s; i<=10001; i++) if (v2[i]!=0)
qq=min(qq,v[i]);
if (qq<=0) g<<-1; else
g<<qq;
f.close();
g.close();
return 0;
}