Pagini recente » Cod sursa (job #2005529) | Cod sursa (job #1715589) | Cod sursa (job #758943) | Cod sursa (job #2354553) | Cod sursa (job #2799372)
#include <iostream>
#include <climits>
#define NMAX 1005
#define WMAX 5005
using namespace std;
int n, e[NMAX], c[NMAX], w, dp[WMAX];
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d%d", &n, &w);
for(int i = 1; i <= n; ++i) scanf("%d%d", &e[i], &c[i]);
for(int i = 0; i <= WMAX - 5; ++i) dp[i] = INT_MAX - 100000;
for(int i = 1; i <= n; ++i) {
for(int j = w; j; --j) {
if(j <= e[i]) dp[j] = min(dp[j], c[i]);
else dp[j] = min(dp[j], c[i] + dp[j - e[i]]);
}
}
printf("%d", (dp[w] == INT_MAX ? -1 : dp[w]));
return 0;
}