Pagini recente » Cod sursa (job #855358) | Cod sursa (job #1223859) | Cod sursa (job #155208) | Cod sursa (job #2730090) | Cod sursa (job #2450650)
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
#define nmax 1002
#define wmax 5002
#define inf 2000000000
int n, w, e[nmax], c[nmax], dp[nmax][wmax];
int main() {
in >> n >> w;
for (int i = 1; i <= n; i++)
in >> e[i] >> c[i];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= w; j++)
dp[i][j] = inf;
dp[1][e[1]] = c[1];
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= w; j++) {
dp[i][j] = dp[i-1][j];
if (j >= e[i])
dp[i][j] = min(dp[i][j], dp[i-1][j-e[i]] + c[i]);
else
dp[i][j] = min(dp[i][j], c[i]);
}
}
if (dp[n][w] != inf)
out << dp[n][w];
else
out << -1;
}