Pagini recente » Cod sursa (job #1322281) | Cod sursa (job #2388098) | Cod sursa (job #2161763) | Cod sursa (job #1035053) | Cod sursa (job #2377708)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
#define gmax 1001
#define wmax 5000
#define INF 9999999
int dp[wmax*3+5],w,n;
struct inf
{
int cost;
int energie;
} v[gmax];
void read()
{
int i;
cin>>n>>w;
for(i=1;i<=n;i++)
{
cin>>v[i].energie>>v[i].cost;
}
}
void solve()
{
int i,j,sol=INF;
for(i=1;i<=wmax*3;i++)
dp[i]=INF;
for(i=1;i<=n;i++)
{
for(j=w;j>=0;j--)
if(dp[j]!=INF)
{
dp[j+v[i].energie]=min(dp[j+v[i].energie],(dp[j]+v[i].cost));
}
}
for(i=w;i<=wmax*3;i++)
sol=min(dp[i],sol);
if(sol==INF) cout<<-1;
else cout<<sol;
}
int main()
{
read();
solve();
return 0;
}