Pagini recente » Cod sursa (job #1431873) | Cod sursa (job #1431326) | Cod sursa (job #56197) | Cod sursa (job #2519306)
#include <fstream>
#define inf 100010
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int g, w, e[1010], c[1010], dp[1010][5010];
int minim (int a, int b) {
if (a < b) return a; else return b;
}
int main()
{
fin >> g >> w;
for (int i = 1; i <= g; i++)
fin >> e[i] >> c[i];
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 <= e[i])
dp[i][j] = minim(dp[i-1][j], c[i]);
else {
dp[i][j] = minim(dp[i-1][j], dp[i-1][j-e[i]] + c[i]);
}
}
}
if (dp[g][w] == inf)
fout << -1;
else
fout << dp[g][w];
return 0;
}