Pagini recente » Cod sursa (job #60274) | Cod sursa (job #519112) | Cod sursa (job #2822758) | Cod sursa (job #2634526) | Cod sursa (job #2505892)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
vector <vector<int>> v;
void umplere(int& n, int& g)
{
for (int i = 0; i < n+1; i++) {
vector <int> v2(g+1, -1);
v.push_back(v2);
}
}
int main()
{
int n, g;
fin >> n >> g;
umplere(n, g);
v[0][0] = 0;
int og, op;
for (int i = 1; i <= n; i++) {
fin >> og >> op;
for (int j = 1; j <= g; j++) {
if (og <= j) {
if (v[i-1][j - og] != -1) v[i][j] = max(v[i - 1][j], v[i - 1][j - og] + op);
else v[i][j] = v[i - 1][j];
}
else v[i][j] = v[i - 1][j];
}
}
fout << v[n][g];
fin.close();
fout.close();
}