Pagini recente » Cod sursa (job #2339510) | Cod sursa (job #2773459) | Cod sursa (job #833471) | Cod sursa (job #2510490) | Cod sursa (job #2845256)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int INF=1e9;
const int N=1e3+2;
const int G=1e4+2;
int n,g,i,j;
int v[N],w[N],dp[N][G];
int main()
{
fin>>n>>g;
for(i=1; i<=n; i++)
fin>>v[i]>>w[i];
for(i=1; i<=n; i++)
for(j=1; j<=g; j++)
dp[i][j]=INF;
dp[1][v[1]]=w[1];
for(i=2; i<=n; i++)
for(j=1; j<=g; j++)
if(j>=v[i])
dp[i][j]=min(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
else
dp[i][j]=min(dp[i-1][j],w[i]);
if(dp[n][g]==INF)
{
fout<<"-1\n";
return 0;
}
fout<<dp[n][g]<<'\n';
return 0;
}