Pagini recente » Cod sursa (job #1151726) | Cod sursa (job #2111346) | Cod sursa (job #616755) | Cod sursa (job #584742) | Cod sursa (job #2864020)
#include <bits/stdc++.h>
using namespace std;
#define int long long
ifstream in ("energii.in");
ofstream out ("energii.out");
pair <int, int> v[1001];
int dp[20021];
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<=20020;++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 = 20020;j - e >= 0;--j)
if (j - e == 0)
dp[j] = min(cost, dp[j]);
else
dp[j] = min(dp[j - e] + cost, dp[j]);
}
int cost = 1<<30;
for (int i = w;i<=20020;++i)
cost = min (cost, dp[i]);
if (cost == 1<<30)
out << -1 << '\n';
else
out << cost << '\n';
return 0;
}