Pagini recente » Cod sursa (job #2886344) | Cod sursa (job #2651151) | Cod sursa (job #2548318) | Cod sursa (job #1431518) | Cod sursa (job #2711654)
#include <fstream>
#include <map>
#include <vector>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int MMAX = 10000;
int dp[MMAX + 5];
int main()
{
int n, w, x, y, res = -1;
fin >> n >> w;
dp[0] = 0;
for(int i = 1; i < w; i++) dp[i] = -1;
for(int i = 1; i <= n; i++) {
fin >> x >> y;
for(int i = w - 1; i >= 0; i--) {
if(dp[i] != -1 && i + x >= w)
res = (res == -1 ? dp[i] + y : min(res, dp[i] + y));
else if(dp[i] != -1)
dp[i + x] = (dp[i + x] == -1 ? dp[i] + y : min(dp[i] + y, dp[i + x]));
}
}
fout << res;
return 0;
}