Pagini recente » Cod sursa (job #1351275) | Cod sursa (job #1382048) | Cod sursa (job #592206) | Cod sursa (job #1460770) | Cod sursa (job #1253366)
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
const int MAXG = 1005;
const int MAXW = 5005;
int g, w, dp[MAXG][MAXW], e[MAXG], c[MAXG];
int main() {
ifstream fin("energii.in");
ofstream fout("energii.out");
fin >> g >> w;
for(int i = 1 ; i <= g ; ++ i)
fin >> e[i] >> c[i];
for(int i = 0 ; i <= g ; ++ i)
for(int j = 1 ; j <= w ; ++ j)
dp[i][j] = (1000000);
for(int i = 1 ; i <= g ; ++ i) {
for(int j = 1 ; j <= w ; ++ j) {
if(j >= e[i]) {
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - e[i]] + c[i]);
} else
dp[i][j] = min(dp[i - 1][j], c[i]);
}
}
if(dp[g][w] == 1000000)
fout << "-1\n";
else
fout << dp[g][w] << '\n';
}