Pagini recente » Cod sursa (job #2597961) | Cod sursa (job #2821837) | Cod sursa (job #1672176) | Cod sursa (job #2499791) | Cod sursa (job #3233569)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, w;
vector<int> greutate, valoare;
vector<int> dp;
int main()
{
cin >> n >> w;
dp.resize(w + 1), greutate.resize(n + 1), valoare.resize(n + 1);
for (int i = 1; i <= n; i++)
{
cin >> greutate[i] >> valoare[i];
}
int sol = -1;
for (int i = 1; i <= n; i++)
{
for (int j = w - greutate[i]; j >= 0; j--)
{
dp[j + greutate[i]] = max(dp[j] + valoare[i], dp[j + greutate[i]]);
sol = max(sol, dp[j + greutate[i]]);
}
}
cout << sol;
}