Pagini recente » Cod sursa (job #916973) | Cod sursa (job #568655) | Cod sursa (job #3231630) | Cod sursa (job #1447108) | Cod sursa (job #2864009)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
pair <int, int> v[1001];
int dp[10021];
main ()
{
int n;
int w;
in >> n >> w;
for (int i = 1;i<=n;++i)
in >> v[i].first >> v[i].second;
for (int i = 1;i<=10020;++i)
dp[i] = 1<<30;
for (int i = 1;i<=n;++i)
{
int e = v[i].first;
int cost = v[i].second;
for (int j = 10020;j - e >= 0;--j)
if (j - e == 0)
dp[j] = min(cost, dp[j]);
else if (dp[j-e])
dp[j] = min(dp[j - e] + cost, dp[j]);
}
int cost = 1<<30;
for (int i = w;i<=10020;++i)
cost = min (cost, dp[i]);
if (cost == 1<<30)
out << -1 << '\n';
else
out << cost << '\n';
return 0;
}