Pagini recente » Cod sursa (job #13352) | Cod sursa (job #2110151) | Cod sursa (job #2553594) | Clasament iufat | Cod sursa (job #1814546)
#include <iostream>
#include <fstream>
#define NMAX 5005
#define GMAX 10005
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int opt[2][GMAX];
int main ()
{
int n, v;
fin >> n >> v;
for (int i = 0; i <= 1; ++i) {
for (int j = 1; j <= v; ++j) {
opt[i][j] = -1;
}
}
int maxn = 0;
for (int i = 1; i <= n; ++i) {
int x, y;
fin >> x >> y;
for (int j = x; j <= v; ++j) {
if (opt[(i-1)%2][j-x] != -1) {
opt[i%2][j] = opt[(i-1)%2][j-x] + y;
}
opt[i%2][j] = max(opt[i%2][j],opt[(i-1)%2][j]);
if (opt[i%2][j] > maxn) {
maxn = opt[i%2][j];
}
}
}
fout << maxn;
/*for (int i = 0; i <= 1; ++i) {
for (int j = 1; j <= v; ++j) {
cout << opt[i][j] << " ";
}
cout << endl;
} */
return 0;
}