Pagini recente » Cod sursa (job #1641457) | Cod sursa (job #968404) | Cod sursa (job #989710) | Cod sursa (job #948955) | Cod sursa (job #2630483)
#include <iostream>
using namespace std;
struct obiecte
{
int x,y;
};
obiecte v[1005];
int d[1005];
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=(last+v[i].x,e);
}
if(minn==2000000000)
cout<<"-1";
else
cout<<minn;
return 0;
}