Pagini recente » Cod sursa (job #2334884) | Cod sursa (job #1869176) | Cod sursa (job #2261386) | Cod sursa (job #2786875) | Cod sursa (job #2123631)
#include <iostream>
#include <fstream>
#include <algorithm>
#define INF 1000000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[1005][5005],w[1005],v[1005],n,S;
int ener(int i,int val)
{
if (i==n)
{
if (val<S)
return INF;
else return 0;
}
if (dp[i][val]!=-1)
return dp[i][val];
int sol1=ener(i+1,val);
int sol2=ener(i+1,val+v[i])+w[i];
dp[i][val]=min(sol1,sol2);
return dp[i][val];
}
int main()
{
f>>n>>S;
int i,j;
for (i=0;i<n;i++)
{
f>>v[i]>>w[i];
}
for (i=0;i<=n;i++)
for (j=0;j<=S;j++)
dp[i][j]=-1;
long sol = ener(0,0);
if (sol==INF)
g<<-1;
else g<<sol;
return 0;
}