Pagini recente » Cod sursa (job #534824) | Cod sursa (job #2455114) | Cod sursa (job #1318883) | Cod sursa (job #171584) | Cod sursa (job #2448087)
#include <bits/stdc++.h>
#define WMAX 5001
#define INF 0x3f3f3f3f
int dp[WMAX];
int main() {
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int n, g, w, p;
scanf("%d", &n);
scanf("%d", &g);
int power[n + 1], costs[n + 1];
memset(dp, INF, sizeof(dp));
for (int i = 1 ; i <= n ; ++i) {
scanf("%d%d", &power[i], &costs[i]);
}
for (int i = 1 ; i <= n ; ++i) {
for (int j = g ; j >= power[i] ; --j) {
dp[j] = std::min(dp[j], dp[j - power[i]] + costs[i]);
}
for (int j = 1 ; j < power[i] ; ++j) {
dp[j] = std::min(dp[j], costs[i]);
}
}
dp[g - 1] == INF ? printf("-1") : printf("%d\n", dp[g - 1]);
return 0;
}