Pagini recente » Cod sursa (job #2793804) | Cod sursa (job #2831258) | Cod sursa (job #2289225) | Cod sursa (job #1322641) | Cod sursa (job #2799373)
#include <iostream>
#include <climits>
#define NMAX 1005
#define WMAX 5005
#define INF 100000000
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] = INF;
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] == INF ? -1 : dp[w]));
return 0;
}