Pagini recente » Cod sursa (job #1733145) | Cod sursa (job #1932679) | Cod sursa (job #1464740) | Cod sursa (job #2007021) | Cod sursa (job #2448076)
#include <bits/stdc++.h>
#define WMAX 5001
#define INF 0x3f3f3f3f
int dp[2][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];
for (int i = 0 ; i <= 2 ; ++i) {
for (int j = 0 ; j <= g; ++j) {
dp[i][j] = INF;
}
}
for (int i = 0 ; i < n ; ++i) {
scanf("%d%d", &power[i], &costs[i]);
}
int l = 0;
for (int i = 1 ; i <= n ; ++i, l = 1 - l) {
for (int j = 1 ; j <= g ; ++j) {
if (j > power[i]) {
dp[l][j] = -1;
} else if (dp[1 - l][j] == -1) {
dp[l][j] = costs[i];
} else {
dp[l][j] = std::min(costs[i] + dp[l][j], power[i]);
}
}
}
printf("%d\n", dp[l][g]);
return 0;
}