Pagini recente » Cod sursa (job #380682) | Cod sursa (job #227404) | Cod sursa (job #2794423) | Cod sursa (job #2480606) | Cod sursa (job #2955011)
#include<iostream>
#include<fstream>
std::ifstream in("energii.in");
std::ofstream out("energii.out");
using namespace std;
int dp[1001][5001];
int e[1001], c[1001];
int n, w;
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] = INT_MAX >> 1;
for (int i = 1; i <= n; i++)
for (int j = e[i]; j <= w; j++)
if (dp[i][j] > dp[i - 1][j - e[i]] + c[i]) {
dp[i][j] = dp[i - 1][j - e[i]] + c[i];
}
if (dp[n][w] == INT_MAX >> 1) dp[n][w] = -1;
out << dp[n][w];
}