Pagini recente » Cod sursa (job #2710041) | Cod sursa (job #2367662) | Cod sursa (job #906471) | Cod sursa (job #2884854) | Cod sursa (job #2717313)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiect {
int g, val;
};
int n, gmax;
vector <obiect> v;
int a[5005][5005];
void rucsac() {
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= gmax; ++j)
if(v[i].g > j)
a[i][j] = a[i - 1][j];
else a[i][j] = max(a[i - 1][j], a[i - 1][j - v[i].g] + v[i].val);
}
int main()
{
f >> n >> gmax;
v = vector <obiect> (n + 1);
for(int i = 1; i <= n; ++i)
f >> v[i].g >> v[i].val;
rucsac();
g << a[n][gmax];
}