Pagini recente » Cod sursa (job #2347994) | Cod sursa (job #2630082) | Cod sursa (job #2495910) | Cod sursa (job #2082995) | Cod sursa (job #2121863)
#include <fstream>
using namespace std;
ifstream cin ("energii.in");
ofstream cout ("energii.out");
const int MAX_G = 1001;
const int MAX_W = 5001;
const int INF = 1000000000;
int G, W;
int E[MAX_G], cost[MAX_G];
int dp[MAX_G][MAX_W];
int main() {
cin >> G >> W;
for(int i = 1; i <= G; i++)
cin >> E[i] >> cost[i];
for(int j = 1; j <= W; j++)
dp[0][j] = INF;
for(int i = 1; i <= G; i++) {
for(int j = 1; j <= W; j++) {
dp[i][j] = INF;
if(E[i] <= j)
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - E[i]] + cost[i]);
else
dp[i][j] = min(dp[i - 1][j], cost[i]);
}
}
if(dp[G][W] == INF)
cout << -1;
else
cout << dp[G][W];
return 0;
}