Pagini recente » Cod sursa (job #1246547) | Cod sursa (job #368919) | Cod sursa (job #559974) | Cod sursa (job #2373384) | Cod sursa (job #3353048)
#include <bits/stdc++.h>
using namespace std;
const int max_size = 6e3 + 20, INF = 1e9 + 7, rmax = 15;
int dp[max_size];
void solve()
{
int n, g;
cin >> n >> g;
for (int i = 1; i < max_size; i++)
{
dp[i] = INF;
}
dp[0] = 0;
for (int i = 1; i <= n; i++)
{
int w, x;
cin >> w >> x;
for (int j = max_size; j >= w; j--)
{
dp[j] = min(dp[j], dp[j - w] + x);
}
}
int ans = dp[g];
for (int i = g + 1; i < max_size; i++)
{
ans = min(ans, dp[i]);
}
if (ans == INF)
{
ans = -1;
}
cout << ans << "\n";
}
signed main()
{
#ifdef LOCAL
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#else
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
#endif // LOCAL
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
long long tt;
tt = 1;
while (tt--)
{
solve();
}
return 0;
}