Pagini recente » Cod sursa (job #2522797) | Cod sursa (job #224647) | Cod sursa (job #780165) | Cod sursa (job #472315) | Cod sursa (job #2695286)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct elem
{
int energie;
int cost;
};
int n, m;
elem v[1002];
int dp[10002];
/// dp[i] => costul minim atunci cand folosesc i cantitati de energie
int32_t main()
{
fin >> n >> m;
for(int i = 1; i <= n; i ++)
{
fin >> v[i].energie;
fin >> v[i].cost;
}
for(int i = 1; i <= 10000; i ++)
{
dp[i] = INT_MAX;
}
for(int i = 1; i <= n; i ++)
{
for(int j = 10000 - v[i].energie; j >= 0; j --)
{
dp[j + v[i].energie] = min(dp[j+ v[i].energie], dp[j] + v[i].cost);
}
}
int ans = INT_MAX;
for(int i = m; i <= 10000; i ++)
{
ans = min(ans, dp[i]);
}
if(ans != INT_MAX)
fout << ans << '\n';
else
fout << -1 << '\n';
return 0;
}