Pagini recente » Diferente pentru problema/ecexp intre reviziile 4 si 3 | Cod sursa (job #3333190) | Cod sursa (job #463090) | Cod sursa (job #286305) | Cod sursa (job #3354935)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin;
ofstream fout;
int main()
{
fin.open("rucsac.in");
fout.open("rucsac.out");
int n, g;
fin >> n >> g;
vector<pair<int, int>> v;
vector<int> dp(g + 1, 0);
for (int i = 0; i < n; i++)
{
int w, p;
fin >> w >> p;
v.push_back({w, p});
}
for (int i = 0; i < n; i++)
for (int j = g; j >= v[i].first; j--)
dp[j] = max(dp[j], dp[j - v[i].first] + v[i].second);
fout << dp[g] << endl;
fin.close();
fout.close();
}