Pagini recente » Cod sursa (job #39517) | Cod sursa (job #1535707) | Cod sursa (job #122882) | Cod sursa (job #1000577) | Cod sursa (job #2242974)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int NMAX = 10005;
int dp[NMAX], e[NMAX], c[NMAX];
int main() {
int g, w;
in >> g >> w;
for(int i = 1; i <= g; i ++)
in >> e[i] >> c[i];
for(int i = 1; i <= w; i ++)
dp[i] = INT_MAX;
dp[0] = 0;
for(int i = 1; i <= g; i ++)
for(int j = e[i]; j <= w; j ++)
if(dp[j - e[i]] != INT_MAX)
dp[j] = min(dp[j - e[i]] + c[i], dp[j]);
if(dp[w] == INT_MAX)
dp[w] = -1;
out << dp[w];
return 0;
}