Pagini recente » Cod sursa (job #195699) | Cod sursa (job #400698) | Cod sursa (job #3272071) | Cod sursa (job #3218222) | Cod sursa (job #2532559)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
const int inf = 2e9;
const int gmax = 1e3 + 2, wmax = 5e3+2;
int dp[gmax][wmax], G, W;
struct gen
{
int g, p;
}v[gmax];
int main()
{
fin >> G >> W;
for (int i=1; i<=G; ++i) fin >> v[i].g >> v[i].p;
for (int i=1; i<=W; ++i) dp[0][i] = inf;
for (int i=1; i<=G; ++i)
for (int j=1; j<=W; ++j)
if (j <= v[i].g) dp[i][j] = min(dp[i-1][j], v[i].p);
else dp[i][j] = min(dp[i-1][j], dp[i-1][j-v[i].g] + v[i].p);
if (dp[G][W] == inf) fout << -1;
else fout << dp[G][W];
return 0;
}