Pagini recente » Cod sursa (job #101698) | Cod sursa (job #761320) | Cod sursa (job #762789) | Cod sursa (job #478780) | Cod sursa (job #1994289)
#include <cstdio>
const int INF = 2e9;
const int MAXW = 5e4;
const int MAXG = 1e4;
int dp[MAXW + 1],
cost[MAXG],
e[MAXG];
inline int min(int a, int b) {
return a > b ? b : a;
}
int main() {
int n, wt;
FILE *f = fopen("energii.in", "r");
fscanf(f, "%d%d", &n, &wt);
for (int i = 0; i < n; ++i) {
fscanf(f, "%d%d", &e[i], &cost[i]);
}
for (int i = 1; i <= wt; ++i) {
dp[i] = INF;
}
fclose(f);
for (int i = 0; i < n; ++i) {
for (int j = wt; j >= 0; --j) {
if (e[i] + j > wt) {
dp[wt] = min(dp[wt], cost[i] + dp[j]);
} else {
dp[j + e[i]] = min(dp[j + e[i]], cost[i] + dp[j]);
}
}
}
f = fopen("energii.out", "w");
if (dp[wt] == INF) {
fprintf(f, "-1\n");
} else {
fprintf(f, "%d\n", dp[wt]);
}
fclose(f);
return 0;
}