Pagini recente » Cod sursa (job #1375655) | Cod sursa (job #813008) | Cod sursa (job #682416) | Cod sursa (job #1150807) | Cod sursa (job #1922516)
#include <fstream>
using namespace std;
struct generator
{
int energie;
int cost;
};
const int NMAX = 1000 + 5;
const int WMAX = 5000 + 5;
const int INF = 0x3f3f3f3f;
generator serie;
int nr_generatoare, energie_minima, ans = INF;
int dp[NMAX][WMAX];
int main()
{
ifstream cin("energii.in");
ofstream cout("energii.out");
cin >> nr_generatoare >> energie_minima;
for (int i = 0; i <= nr_generatoare; ++i)
for (int j = 1; j <= energie_minima; ++j)
dp[i][j] = INF;
dp[0][0] = 0;
for (int i = 1; i <= nr_generatoare; ++i)
{
cin >> serie.energie >> serie.cost;
for (int j = 1; j <= energie_minima; ++j)
{
dp[i][j] = min(dp[i - 1][j], dp[i - 1][max(0, j - serie.energie)] + serie.cost);
if (j == energie_minima)
ans = min(ans, dp[i][j]);
}
}
if (ans == INF)
cout << -1 << '\n';
else
cout << ans << '\n';
return 0;
}