Pagini recente » Cod sursa (job #2851795) | Cod sursa (job #31893) | Cod sursa (job #2412721) | Cod sursa (job #948299) | Cod sursa (job #2781788)
#include <iostream>
using namespace std;
int dp[5005];
const int INF = 1000000000;
int main()
{
int n, g, s = 0;
cin >> n >> g;
int e[5005], p[5005];
for(int i = 1;i <= n;i ++)
{
cin >> e[i] >> p[i];
s += e[i];
}
if(s < g)
cout << -1;
else
{
for(int i = 1;i <= g;i ++)
dp[i] = INF;
for(int i = 1;i <= n;i ++)
{
for(int j = g;j >= 0;j --)
{
if(j >= e[i])
dp[j] = min(dp[j], dp[j - e[i]] + p[i]);
else
dp[j] = min(dp[j], p[i]);
}
}
cout << dp[g];
}
return 0;
}