Pagini recente » Cod sursa (job #2289829) | Cod sursa (job #1810376) | Cod sursa (job #1236559) | Cod sursa (job #2267361) | Cod sursa (job #2630487)
#include <fstream>
#include <algorithm>
using namespace std;
struct obiecte
{
int x,y;
};
obiecte v[1005];
int d[1005];
ifstream cin("energii.in");
ofstream cout("energii.out");
int main()
{
int n,i,j,last=0,minn=2000000000,e;
cin>>n>>e;
d[0]=0;
for(i=1;i<=n;i++)
cin>>v[i].x>>v[i].y;
for(i=1;i<=e;i++)
d[i]=2000000000;
for(i=1;i<=n;i++)
{
for(j=last;j>=0;j--)
{
if(d[j]!=2000000000 and j+v[i].x<=e and d[j+v[i].x]>d[j]+v[i].y)
d[j+v[i].x]=d[j]+v[i].y;
if(j+v[i].x>=e and d[j]!=2000000000 and minn>d[j]+v[i].y)
minn=d[j]+v[i].y;
}
last=min(last+v[i].x,e);
}
if(minn==2000000000)
cout<<"-1";
else
cout<<minn;
return 0;
}