Pagini recente » Cod sursa (job #3232272) | Cod sursa (job #1464326) | Cod sursa (job #900644) | Cod sursa (job #2695277)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, m, sum;
struct elem{
int energie, cost;
};
elem v[1005];
int dp[5005];
int32_t main()
{
fin >> n >> m;
for(int i = 1; i <= n; i ++)
{
fin >> v[i].energie >> v[i].cost;
sum += v[i].energie;
}
for(int i = 1; i <= sum; i ++)
dp[i] = INT_MAX;
dp[0] = 0;
for(int i = 1; i <= n; i ++)
{
for(int j = sum - v[i].energie; j >= 0; j --)
{
dp[j + v[i].energie] = min(dp[j + v[i].energie], dp[j] + v[i].cost);
}
}
int ok = 0;
for(int i = m; i <= sum; i ++)
{
if(dp[i] != INT_MAX)
{
fout << dp[i] << '\n';
ok = 1;
return 0;
}
}
if(ok == 0)
{
fout << -1 << '\n';
return 0;
}
}