Pagini recente » Cod sursa (job #2011557) | Cod sursa (job #2600791) | Cod sursa (job #1920525) | Cod sursa (job #1663091) | Cod sursa (job #2704938)
#include <fstream>
#define MAX 1000000000
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct ura
{
int e,c;
};
ura v[1001];
int suma[15001];
int main()
{
int i,n,maxi, W, j,pozmax, pp, gasit;
cin>>n>>W;
maxi=0;
for(i=1;i<=n;i++)
{
cin>>v[i].e>>v[i].c;
if(v[i].e>maxi)
maxi=v[i].e;
}
maxi=15000;
for(i=1;i<=maxi;i++)
suma[i]=MAX;
pozmax=0;
for(i=1;i<=n;i++)
{
for(j=maxi;j>=1;j--)
if(suma[j]!=MAX)
if(j+v[i].e <= maxi)
if(suma[j+v[i].e]>suma[j]+v[i].c)
suma[j+v[i].e]=suma[j]+v[i].c;
if(suma[v[i].e]>v[i].c)
suma[v[i].e]=v[i].c;
}
int m=MAX;
for(i=W;i<=maxi;i++)
if(suma[i]<m)
m=suma[i];
if(m==MAX)
cout<<-1;
else
cout<<m;
return 0;
}